text only 2TEXTMSWD '5A\Note: This version of the "JT Fax 14400B Dual Application Developer's Guide" is a special version edited for bulletin-board downloading. As a plain ASCII character file, it therefore cannot contain any of the graphic elements provided in the printed version. The following graphic characters are used to denote the start of Chapters, 1st Level Headings, 2nd Level Headings, and Table Headings: Chapter Headings are preceded by: ========================================================================== 1st Level Headings are preceded by: ************************************************************************** 2nd Level Headings are preceded by: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Table Headings are separated from table listings by: ----------------------------------------------------------------------------- ============================================================================= CHANGE RECORD: Original ========================================================================== Chapter 1 Introduction The Hayes JT Fax 14400B Dual is a board level Fax product developed specially for "high end" server environments where throughput is a major concern. The JT Fax 14400B Dual contains two independent 14.4 KBPS Group 3-compatible fax modems, providing an interface directly to the PC ISA bus. Both fax modems interface to the host software at the speed of the ISA bus specification (i.e., 4-8 MHz). Data transfer between JT Fax and the host software can occur at the MBPS rate. In comparison, most serial based facsimile units can only transfer data in the KBPS range. Considering speed alone, the JT Fax 14400B Dual is ideal for server applications. Additional functionality is added to decrease the burden on the application software and thus the host computer. These features include: automatic T.4 encoding and T.30 handshakes receive Fax real time T.4 to PCX type 3 conversion Fax speeds of 2400 to 14400 BPS digital voice transmit and receive record/playback DTMF transmit and detection. The JT Fax 14400B Dual is designed with a simple high-speed interface. The interface does not require that the application developer know T.4 encoding or T.30 handshake protocols for ITU-T (formerly CCITT) Group 3 facsimiles. The JT Fax 14400B Dual is capable of performing all the encoding and decoding required to complete a fax call. However, if the application developer is comfortable with the encoding and decoding of the T.4 formatted data, the JT Fax 14400B Dual is versatile enough to handle this encoded data. This Application Developers Guide describes the programming procedure that comprises the JT Fax 14400B Dual Application Programming Interface (API). A list of the functions is provided along with the necessary procedure to implement the functions. Throughout, the guide presents example routines using the elements of the functions to assist the programmer with the application. Included in Appendix G is a quick reference guide of the Command Codes indexed by alphabetical listings and by numeric listing. Also available with the JT Fax 14400B Dual is the developers toolkit, which contains working Fax software with source code. Familiarity with "C" and assembly language is required to use the toolkit. Contact Hayes Customer Service for information about obtaining the JT Fax Toolkit. Distinction: JT Fax 14400B Dual is the product described in this Guide. JT Fax is a standard technology in the PC fax industry. The term fax refers to the facsimile technology. ************************************************************************** Manual Organization This Application Developer's Guide is arranged as follows: This Application/Developers Guide is arranged as follows: Chapter 1 Introduction describes the product features and the contents of the remainder of this Guide. Chapter 2 Theory of Operation briefly presents the hardware and firmware used to develop the JT Fax 14400B Dual. Chapter 3 JT Fax Toolbox describes the concepts, constructs, and structures necessary to develop API software for the JT Fax 14400B Dual. Chapter 4 Voice and DTMF Detect describes the voice and DTMF operating modes available with the JT Fax 14400B Dual. Chapter 5 Command Reference presents an alphabetical listing of all command codes available in the JT Fax API. Chapter 6 Shared Memory Interface Description introduces functions, status codes, return codes and data that is passed through the Shared Memory Interface. Chapter 7 File Formats describes the JT Fax file conversion formats. Appendix A ITU-T T.4 Huffman Encoding describes the T.4 Huffman Encoding process used by JT Fax. Appendix B Return Codes describes the timing JT Fax requires to read a return code. The appendix also includes a summary of the JT Fax Return Codes. Appendix C Status Codes provides a summary of the JT Fax Status Codes. Appendix D T.30 Phase Descriptions describes fax call processing techniques used by JT Fax. Appendix E Buffer Area Layout describes the Buffer Area used by several of the JT Fax commands. Appendix F OEM Code Guidelines defines the methodology JT Fax employs to offload code from a fax server. Appendix G Command Codes provides a complete listing of the JT Fax Command Codes in numerical order. Appendix H References lists references used in the development of the product. Glossary Glossary defines terms used in this guide. ************************************************************************** Definitions The following terms are used in this documentation: Term Definition -------------------------------------------------------------------- Host The Program written to interface with the JT Fax JT Fax, Fax The JT Fax 14400B Dual board API Application Programming Interface API Block Shared memory window BPS Bits per second WORD 2 bytes LONG 4 bytes Additional definitions are listed in the Glossary. ========================================================================== Chapter 2 Theory of Operation The JT Fax 14400B Dual board includes two, 14400-baud, Group 3 facsimile modems with voice and DTMF capabilities. The facsimile modems are divided into two independent and separate parts, Fax A and Fax B. Each Fax has an independent processor, PC address interface, data pump and telephone line interface (TELCO) section. Both modems share a single PC bus interface and a speaker connection. The speaker volume is controlled by a potentiometer on the back of the unit. Speaker on/off controls are available for both FAX A and B through functions. Fax A has the additional feature of a microphone jack. The microphone jack is provided for voice messaging applications. ************************************************************************** Shared Memory Interface - API Block The JT Fax interfaces to the PC through a shared memory interface. Access to the shared memory API Block is accomplished by two steps. Step 1: Set the memory base address set with the DIP switch (see the Hayes JT Fax 14400B Dual Installation Guide) on the JT Fax 14400B Dual board. Step 2: Scan the memory between addresses 640k and 1M for the keyword "ASHER". Once the keyword is found, the keyword address marks the beginning memory address of the JT Fax API Block. The memory address is "blocked out" in a 4 Kb section. The starting address is Fax A. Fax A utilizes the first 2 Kb for an API Block. The adjacent 2K of memory is allocated to Fax B's API Block. The shared memory interface requires no interrupt vectors to the PC, no serial port, and no drivers. The application communicates with the JT Fax shared memory using a polled interface method. Polling activation and frequency is host dependent and is determined by the application. The handshake required to communicate with JT Fax 14400B Dual utilizes the JT Fax protocol structure. The JT Fax protocol is an ACK-ACK type protocol. All data and commands use this protocol. Chapter 5 provides protocol examples for each command. The API Block contains memory windows for command protocol, control, configuration, and data. The Shared Memory Interface (see Chapter 6) details the API block. The API block's most important asset is the 1960 byte buffer for transmitting and receiving fax data. This allows additional time for the host to perform other activities. In addition, the JT Fax has a 9K buffer for transmitting and receiving Fax data. The transmit and receive capability of the JT Fax 14400B Dual board offers two modes of operation for the host: Manual and Automatic. Manual requires the host to start the initial call/answer procedure by issuing commands that force the Fax into the "off-hook" condition. The remainder of the call/answer is automatic. In the Automatic procedure, the call/answer is handled by issuing the appropriate transmit and receive commands. The "off-hook" condition is controlled by the Fax. ************************************************************************** Transmitting Transmitting with the JT Fax 14400B Dual is straight-forward since the modem automatically executes the T.4 and T.30 handshake. The host is only responsible for the phone number, data to be transmitted, and the simple handshake protocol to JT Fax and the host. The following is a high level Program Design Language (PDL) example demonstrating a transmit. send SYNC_COMMAND (only after power up ) wait for response GOOD_INIT write to configure API block write phone number in BUFFER_AREA send XMIT_COMMAND wait for response BOARD_ACK_STATUS write header information into BUFFER_AREA send PC_ACK wait for response LOAD_DATA_COMMAND write data to DATA_AREA send PC_ACK continue to write data till END_OF_FILE is reached send EOT_FLAG wait for response BOARD_ACK_STATUS check ret_code TRANSMIT_SUCCESSFUL send PC_ACK A C programming language example of the transmit procedure can be found in the JT Fax Toolkit found on the Online with Hayes BBS in the file JT_TX.C. The JT Fax 14400B Dual can have a manual dial if required. The host is required to dial the telephone number and place an "M" in the first byte of the automatic dial string. The "M" tells the JT Fax not to dial a telephone number. The JT Fax continues with the standard call progress. The manual handshake is identical to the automatic handshake. ***************************************************************************** Receiving The receive procedure for JT Fax 14400B Dual requires the host to monitor the Fax for an indication of a call. The host sets the number of rings to allow before answering in the RING_COUNT field of the API block. Answering the call and T.30 handshakes are automatic. Once the RING_COUNT is matched, the host receives a RECVINIT in the COMMAND field. The RECVINIT is the notification that an incoming call is being answered. After the receiver initializes, the Fax issues a LOAD_DATA_COMMAND. The host should retrieve the data and respond with a PC_ACK. The same handshake continues until the last byte of data for the page or a transmission. To end transmission, the Fax issues an EOT command to the host. The EOT command concludes the handshake for the receive. The following is a PDL example demonstrating a fax receive: send SYNC_COMMAND ( only after power up ) wait for response RECVINIT send PC_ACK wait for response LOAD_DATA_COMMAND retrieve data from DATA_AREA send PC_ACK continue procedural handshake until response EOT_FLAG retrieve data from DATA_AREA send PC_ACK wait for response BOARD_ACK_STATUS check RET_CODE SUCCESSFUL_RECEIVE send PC_ACK A C programming language example of the receive procedure can be found in the JT Fax Toolkit found on the Online with Hayes BBS under the file JT_RX.C. The manual receive allows the host to determine when and if the call will be answered. Rings are detected by an outside source or by the extended status code "RING". When the required number of rings is reached, the host issues the MANUAL_RECEIVE_COMMAND. Note: To disable automatic detection, it is required to set RING_COUNT to 0FH. The remaining receive handshake procedure is identical to the automatic answer mode. ========================================================================== Chapter 3 JT Fax Toolbox This section establishes the concepts, constructs, and structures necessary to develop API software. The items in capital letters are the specific functions whose corresponding command values are found in the JT Fax 14400B command set in Chapter 5. The JT Fax 14400B Dual uses two contiguous memory blocks, each of which is 2K bytes long. The API Blocks, functions, return codes and status codes are discussed in separate sections of this Guide. In those Chapters, individual items are in alphabetical order for convenience. In the following sections, the items are grouped by function to clarify what functions are available. ************************************************************************** API Block - Shared Memory The API entry point for the JT Fax 14400B is the user selectable shared memory window. For backward compatibility, most of the elements of this structure are identical to the JT Fax 9600B. The only changes implemented to this structure are related to the new features of the JT Fax 14400B Dual. The changes are in the field previously defined as RESERVED and in one field not used in 9600B (RESET_PC). The new fields are STATUS_CODE, RCV_FILE_TYPE and RCV_LINES. The following chart describes the available fields: Offset Length Name Usage/Description ----------------------------------------------------------------------- 0000H-0005H ID Location of board address 0005H-0001H COMMAND Commands and Status 0006H-0001H RING_COUNT Ring to answer on 0007H-0001H CALL_MODE Transmit / Receive 0008H-0001H FILE_TYPE ASCII, PCX, JT Fax 0009H-0001H XMIT_FONT Resolution, Font number 000AH-0001H MIN_PAGE Force 11 inch page flag 000BH-003DH BUFFER_AREA Phone numbers & headers 0048H-0002H SECONDS Length of connection 004AH-0001H SPEAKER On, off, on till connect 004BH-0001H RET_CODE Completion code 004CH-0002H PAGES Number of pages sent 004EH-0002H DATA_LEN Length of valid data 0050H-0001H BAUD_RATE 2400, 4800, 7200, 9600, 12000, 14400 baud 0051H-0001H RESET_BOARD Reset the board 0052H-0001H STATUS_CODE Extended status 0053H-0001H LINE_COUNT Number of lines transmitted 0054H-0001H RCV_FILE_TYPE Receive file type 0055H-0002H RCV_LINE Lines per page received 0057H-0001H RESERVED Not used at this time 0058H-07A8H DATA_AREA Used for file data Note: H indicates hexadecimal code. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 9600 Compatibility For backward compatibility, the API set published with the JT Fax 9600B has been fully implemented. These functions use the Command field and are provided here for reference. Status Description ------------------------------------------------------------------ EOTFLAG End of transmission EOP End of page INIT Initialize the board LOAD_DATA_COMMAND Begin transmit of Fax LOAD_FONT_COMMAND Load soft font RECVINIT Begin reception of Fax XMIT_COMMAND No transmission in progress The JT Fax 9600B also included some status and PC handshake codes in the Command field. These are fully implemented for backward compatibility. The codes are provided here for reference. Command Description ------------------------------------------------------------------------------ BAD_RAM RAM test failed BAD_ROM ROM test failed BOARD_ACK_STATUS Board returns when function complete BOARD_SYNC_COMMAND Transition from initialization to command ERROR An error has occurred GOOD_INIT Board passed self test IDLE_STATUS No transmission in progress PC_ACK PC returns when function is complete +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 14400B Facsimile API The JT Fax 14400B API set is an enhanced version of the 9600B API set. All of the 9600B functions are supported. The following chart lists the facsimile API commands supported: Command Description ------------------------------------------------------------------- EOTFLAG End of transmission EOP_FLAG End of page BOARD_SYNC_COMMAND Initializes the board LOAD_DATA_COMMAND Begin transmit of Fax LOAD_FONT_COMMAND Load soft font RECVINIT Begin reception of Fax XMIT_COMMAND No transmission in progress +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 14400B Configuration API The JT Fax 14400B Dual Configuration functions were not available in the JT Fax 9600B command set. These configuration functions allow the host to customize the operation of the JT Fax 14400B Dual board. The following chart lists the configuration commands: Command Description ---------------------------------------------------------------------- BUSY_COMMAND Look for busy DTMF_OFF_TIME_COMMAND DTMF off time DTMF_ON_TIME_COMMAND DTMF on time ENHANCED_MODE_OFF_COMMANDDisable 14400B modes ENHANCED_MODE_ON_COMMAND Enable all 14400B modes EXTEND_STATUS_OFF_COMMAND Disable extended status EXTEND_STATUS_ON_COMMAND Enable extended status FAX_144_MODE_OFF_COMMAND Disable receive 14400 kbps FAX_144_MODE_ON_COMMAND Enable receive 14400 kbps FAX_MODE_COMMAND Enable JT Fax Mode (testing) MODEM_MODE_COMMAND Disable Fax and enable Modem NO_BUSY_COMMAND Do not look for busy PULSE_INTER_COMMAND Interdigit time REC_PCX_OFF_COMMAND Disable receive PCX format REC_PCX_ON_COMMAND Enable receive PCX format SET_CARRIER_COMMAND Time to wait for carrier STATUS_COMMAND Enable the 14400B status USER_CSI_COMMAND Initializes CSI USER_TSI_COMMAND Initializes TSI +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Voice Commands The Voice mode allows the recording and playback of non-compressed voice messages. During Phase A of a call, the Voice mode is entered after a user definable period of silence. (See Appendix D for a detailed description of JT Fax fax phases). After a period of silence, the user is notified of the "silent period" (SILENCE_DETECTED status) and is provided with a number of options. In addition, DTMF detect is automatically enabled. Command Description ------------------------------------------------------------------------------- CLEAR_VOICE_COMMAND Disables voice mode GAIN_DOWN_COMMAND Decrements gain increment by 1 dB (See SET_GAIN_COMMAND) GAIN_UP_COMMAND Increments the gain increment by 1 dB (See SET_GAIN_COMMAND) PLAY_END_COMMAND End voice playback PLAY_START_COMMAND Start voice play back RECORD_START_COMMAND Start recording voice RECORD_STOP_COMMAND Stop recording voice RETURN_TO_COMMAND Return to command state from voice mode RETURN_TO_DATA_COMMAND Return to Fax state from voice mode SET_ACT_TIMER_COMMAND Sets the time to wait for CNG tone SET_GAIN_COMMAND Sets the gain increment SET_SLEW_RATE_COMMAND Sets the "fall off rate" for voice signal SET_VOICE_MODE_COMMAND Enables voice mode and CNG detect TX_DTMF_COMMAND Transmit DTMF tones +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Utility Functions Some additional functions were added to aid in testing and debugging. The utility functions provide some of the low-level commands (primitives) used by the JT Fax 14400B to operate the hardware components. The JT Fax 14400B must be in FAX_MODE before any of the utility commands can be used. Caution: Some of these commands change the configuration of the Data Pump. If a change occurs to the data pump configuration, then a hardware reset will restore the values. Command Description ------------------------------------------------------------------ CED_OFF_COMMAND Turn off CED tone CED_ON_COMMAND Turn on CED tone CNG_OFF_COMMAND Turn off CNG tone CNG_ON_COMMAND Turn on CNG tone DTMF_DIAL_COMMAND Dial a DTMF number DTMF_OFF_COMMAND Turn off a DTMF tone DTMF_ON_COMMAND Turn on a DTMF tone OEM_CODE_COMMAND Execute OEM code onboard OEM_LOAD_COMMAND Load OEM code onboard OFF_HOOK_COMMAND Connects phone line ON_HOOK_COMMAND Disconnects phone line PULSE_BREAK_COMMAND Sets the Break Time PULSE_DIAL_COMMAND Pulse dial a number PULSE_MAKE_COMMAND Sets the Make Time RESET_DATA_PUMP_COMMAND Resets the data pump SPEAKER_OFF_COMMAND Turn off the speaker SPEAKER_ON_COMMAND Turn on the speaker ************************************************************************** Return Codes The return codes are enhanced for the JT Fax 14400B. In addition to the old JT Fax 9600B error codes, enhanced codes are available for more accurate problem determination during a FAX call. The standard JT Fax 9600B return codes include two status codes, and the remaining codes are error return codes. The return codes are listed in the following table. Error Code Description -------------------------------------------------------------------------------- BAD_DCS_RECEIVE Error in DCS data BAD_DIS_RECEIVE Bad DIS was received BAD_MCF_RESPONSE Messages not confirmed BAD_MPS_RECEIVE Error in MPS frame BAD_TRAINING Errors received in training BUSY Busy signal was detected CLIPPED ASCII to T4 line too long NO_CARRIER No connection was established NO_DATA_RECEIVED No data received within time limit NO_DIALTONE No dialtone reported in time limit NO_PC_ACK No PC acknowledge within time limit PAGE_ERROR Error in transmit page or receive page PHASE_D_ERROR Error occurred in Phase D SUCCESSFUL_RECEIVE Receive was successful SUCCESSFUL_TRANSMIT Transmit was successful The enhanced mode can be enabled/disabled by the following commands: ENHANCED_MODE_ON ENHANCED_MODE_OFF (default). The additional enhanced return codes are listed in the following table. Error Code Description ------------------------------------------------------------------------------ ABORT_ERROR Callee aborted call DCN_RECEIVED_ERROR Unexpected DCN received DIALING_ERROR DTMF digit in error DTMF_ERROR Tone was not DTME DTMF_TIMEOUT_ERROR DTMF tone was not available during timeout FAXIT_ERROR Error during fax transmission FONT_TOO_LARGE_ERROR Soft font too large HDLC_CRC_ERROR HDLC frame had bad CRC HDLC_FRAME_TIMEOUT_ERROR No HDLC frame in time limit HDLC_MIN_SIZE_ERROR Facsimile control frames had incorrect size LONG_LINE_ERROR Line too long in ASCII to Huffman MAX_FRAME_ERROR Facsimile control frames had incorrect size NEGOTIATING_TRAIN_DCN_ERROR DCN received during training NO_CNG_ERROR No CNG detected in received mode NO_RECEIVE_DCS_ERROR No DCS received PERCENTAGE_ERROR Errors in line exceeded percentage limits PHASE_A_ERROR Error occurred in Phase A PHASE_B_ERROR Error occurred in Phase B PHASE_C_ERROR Error occurred in Phase C PHASE_E_ERROR Error occurred in Phase E PHASE_E_TIMEOUT Time-out during handshake Phase E ROCK_ERROR Error in DSP chip VOICE_ERROR Error in voice procedures ************************************************************************** Status Codes In addition to the enhanced error codes, enhanced status messages are available. Since status codes do not require a response or action, the codes are reported in the STATUS_CODE. Status Description ---------------------------------------------------------- CONNECT Connection established NEGOTIATING_SPEED Negotiating connect speed PHASE_A_START Phase A started PHASE_B_START Phase B started PHASE_C_START Phase C started PHASE_D_START Phase D started RING Ring detected SUBSCRIBE_INFO CSI/TSI information available in buffer area ========================================================================== Chapter 4 Voice and DTMF Detect The voice and DTMF detect option of the JT Fax 14400B Dual has a Manual and an Automatic operating mode. Automatic requires a connection while Manual may be initiated in an off- line or on-line state. The Automatic DTMF/VOICE detection for JT Fax 14400B Dual detects DTMF/VOICE during the Phase A (answer mode) of a call. Enable the CNG_DETECT_ON_command for the automatic option. To disable the automatic mode, issue the CNG_DETECT_OFF_COMMAND. After a user-defined period of silence (no CNG tone), the JT Fax 14400B Dual enters DTMF/VOICE mode. During this stage, the user has the following options: detecting DTMF tones returning to data mode and continuing to answer Fax calls (i.e., send CED) executing voice commands returning to command state. The Manual mode only requires setting the options for DTMF/VOICE and the specific command to be issued. Manual mode is independent of connection status. ************************************************************************** DTMF Detect Automatic DTMF detection is accomplished when the JT Fax 14400B Dual is in the DTMF/VOICE on-line detect mode. The JT Fax 14400B Dual automatically searches for DTMF tones. If a DTMF tone is found, the tone value is placed in the first byte of the Data_Area and a DTMF_DETECT_STATUS is written into the API command block at location COMMAND. The JT Fax 14400B Dual waits until the Host retrieves the DTMF value and issues a PC_ACK command before searching for more DTMF tones. The manual option provides the capability of entering DTMF detect mode from command state. This is independent of connect status. The JT Fax 14400B Dual operates similarly to the automatic DTMF detect. The difference is that the Host must cancel the DTMF detect search with an EOD command. The JT Fax 14400B Dual issues a BOARD_ACK_COMMAND in response. The option for CNG_DETECT does not have to be enabled for the manual DTMF detect. However, DTMF detect option does need to be enabled for manual and automatic operation. The DTMF tones detected and reported to the Host are: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *, #, A, B, C, D. Commands available for Automatic operation are: CNG_DETECT_ON_COMMAND DTMF_DIAL_COMMAND DTMF_DETECT_STATUS RETURN_TO_DATA_COMMAND RETURN_TO_COMMAND Commands available for manual operation include: DTMF_DETECT_ON_COMMAND EOD DTMF_DETECT_STATUS The following is an example of automatic DTMF detect: (Connecting Call) . . . Wait for Response SILENCE_DETECT_STATUS Check Status VOICE_MODE . . . Wait for Response DTMF_DETECT_STATUS Retrieve Byte Code from Data_Area Send PC_ACK . . . (Continuing in DTMF/Voice Mode) The following is an example of manual DTMF detect: Send GET_DTMF_COMMAND Wait for Response BOARD_ACK_STATUS Wait for Response DTMF_DETECT_STATUS Retrieve Byte Data from Data_Area Send PC_ACK . . . (When Finished) Send EOD_FLAG Wait for Response BOARD_ACK_COMMAND Send PC_ACK ************************************************************************** Voice Mode Voice mode can be entered when you are connected or disconnected to the phone line. When connected, voice recording is provided from the telephone line to either Fax A or Fax B. In the disconnected mode, input is provided by a microphone on Fax A only. In automatic voice mode, DTMF and voice are enabled. During Phase A of the call, the Voice mode is entered after a user definable period of silence. After the period of silence, the Host is notified of the "silent period" (SILENCE_DETECTED status) and starts to execute options similar in functionality to the Class 2 voice commands. The options in Automatic mode are: Command Description ---------------------------------------------------------------------------------- CNG_DETECT_ON_COMMAND Enables voice mode and CNG detect CNG_DETECT_OFF_COMMAND (default) SET_ACTIVITY_TIMER Sets the time to wait for CNG tone GAIN_UP Increases the gain increment by 1 dB GAIN_DOWN Decrements gain increment by 1 dB SET_GAIN Sets the gain increment SET_SLEW_RATE Sets the "fall-off rate" for voice signal RETURN_TO_COMMAND Returns to command state from voice mode RECORD_START Starts recording voice RECORD_STOP Stops recording voice PLAY_START Starts voice play back PLAY_END Ends voice playback DIAL_DTMF_COMMAND Transmits DTMF tones Manual voice mode requires the host to issue the SETUP_VOICE_COMMAND from command state. Once the command is received by the FAX, the JT Fax 14400B Dual enters the VOICE/DTMF mode and all commands available for Automatic mode are applicable except the RETURN_TO_DATA_COMMAND. During the actual playing and recording of a message, the DTMF detection is not available. This is due to the half-duplex nature of the 144EFX chip and different modes required for DTMF DETECT and VOICE mode. However, after the message is sent DTMF detection may occur. Voice data format during record and playback is in a raw binary 8-bit resolution format. The following PDL example is for automatic voice playback: (Initiate Call) . . . Wait for Response SILENCE_DETECT_STATUS Send PC_ACK Write Voice Data in Data_Area Send Play Start Wait for Response LOAD_DATA_COMMAND . . . (Finish Data) SEND_EOV_FLAG Wait for Response BOARD_ACK_COMMAND Send PC_ACK . . . (Continue with Voice/DTMF loop) Voice playback is completed. The following example is for manual record off-line. Step 1: Attach the microphone to the Fax A microphone jack. Step 2: Start the voice recording process: Send REC_START_COMMAND Wait for Response BOARD_ACK_STATUS Wait for Response LOAD_DATA_COMMAND Retrieve voice data from Data_Area Send PC_ACK . . . Wait for Response EOVFLAG Send PC_ACK This completes the voice recording. To use Manual Voice Recording, use the previous procedure, but replace the REC_START_COMMAND with the MANUAL_REC_COMMAND. ========================================================================== Chapter 5 Command Reference This Chapter includes detailed descriptions of the JT Fax command set. The point of reference is from the HOST side for all commands. The command descriptions are in the following format: Characteristic Description COMMAND: Specific function or status mnemonic CODE: Hex code CATEGORY: Fax, Status, Configuration, Utility, Voice DIRECTION: Host to JT Fax or JT Fax to Host INPUT to JT: Location in API block. Direction: JT Fax OUTPUT from JT: Location in API block. Direction: Host DEFAULT: Default for status commands DESCRIPTION: Detailed description of command EXAMPLE: A flow language example RELATED FUNCTIONS: Any other functions that might be of use The commands are presented in alphabetical order. Note: A PC_ACK is required after a BOARD_ACK status unless otherwise specified by the specific command feature. ************************************************************************** BAD_RAM Characteristic Description COMMAND: BAD_RAM CODE: 0F1H CATEGORY: Fax - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: BAD_RAM is issued after the RAM test was performed. BAD_RAM is an indication of a faulty random access memory chip. It is not recommended that FAX operation proceed. Call Hayes Customer Service. EXAMPLE: BOARD_SYNC_COMMAND - Host BAD_RAM - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ***************************************************************************** BAD_ROM Characteristic Description COMMAND: BAD_ROM CODE: 0F2H CATEGORY: Fax - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: BAD_ROM is issued after the ROM test was performed. BAD_ROM is an indication of faulty read only memory chip. It is not recommended that FAX operation proceed. Call Hayes Customer Service. EXAMPLE: BOARD_SYNC_COMMAND - Host BAD_ROM - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ************************************************************************** Board_ACK_Status Characteristic Description COMMAND: Board_ACK_Status CODE: 02H CATEGORY: Status DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: This API is part of the handshake protocol with the Host. The JT Fax board returns a BOARD_ACK_STATUS acknowledging the receipt or completion of a command. Some commands have additional handshake sequences and are detailed under the specific command. EXAMPLE: REC_PCX_ON_COMMAND - Host BOARD_ACK_STATUS - JT Fax (continue if necessary) . . . RELATED FUNCTIONS: PC_ACK ************************************************************************** Board_Sync_Command Characteristic Description COMMAND: Board_Sync_Command CODE: 0FFH CATEGORY: FAX - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: GOOD_INIT IDLE DEFAULT: Not applicable DESCRIPTION: The BOARD_SYNC_COMMAND initiates command state for the Fax after a power up or HARDWARE_RESET_COMMAND. No commands are accepted by the Fax until this command is issued. After the command is issued, BOARD_STATUS is updated in the API block. A GOOD_INIT is issued when the Fax is ready for commands. If a GOOD_INIT is not received , then the Host may need to issue another HARDWARE_RESET_COMMAND. EXAMPLE: BOARD_SYNC_COMMAND - Host GOOD_INIT - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: GOOD_INIT, HARDWARE_RESET_COMMAND ************************************************************************** Busy_Command Characteristic Description COMMAND: Busy_Command CODE: 02FH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Detect Busy DESCRIPTION: The BUSY_COMMAND instructs the JT Fax to recognize a busy signal. EXAMPLE: IDLE - FAX BUSY_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_DIAL_COMMAND, DTMF_DIAL_COMMAND ************************************************************************** CED_Off_Command Characteristic Description COMMAND: CED_Off_Command CODE: 037H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CED_OFF_COMMAND terminates the output of an ITU-T T.4 specified 2100 Hz tone. EXAMPLE: CED_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CED_ON_COMMAND ***************************************************************************** CED_On_Command Characteristic Description COMMAND: CED_On_Command CODE: 036H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CED_ON_COMMAND outputs an ITU-T T.4 specified 2100 Hz tone. EXAMPLE: CED_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CED_OFF_COMMAND ************************************************************************** CNG_Detect_Off_Command Characteristic Description COMMAND: CNG_Detect_Off_Command CODE: 061H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Off DESCRIPTION: The CNG_DETECT_OFF_COMMAND must be issued from command state. The command disables the voice and DTMF modes when answering a call. After answering a call, the Fax will not determine if the caller is a voice call or Fax call by detecting a CNG tone. The answer back tone is transmitted. EXAMPLE: IDLE - FAX CNG_DETECT_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR ************************************************************************** CNG_Detect_On_Command Characteristic Description COMMAND: CNG_Detect_On_Command CODE: 060H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Off DESCRIPTION: The CNG_DETECT_ON_COMMAND must be issued from command state. The command enables the voice and DTMF modes when answering a call. After answering a call, the Fax will not determine if the caller is a voice call or Fax call by detecting a CNG tone. The answer back tone is transmitted. EXAMPLE: IDLE - FAX CNG_DETECT_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR ************************************************************************** CNG_Off_Command Characteristic Description COMMAND: CNG_Off_Command CODE: 035H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CNG_OFF_COMMAND terminates the output of an ITU-T T.4 specified 1100 Hz tone. EXAMPLE: CNG_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CNG_OFF_COMMAND ************************************************************************** CNG_On_Command Characteristic Description COMMAND: CNG_On_Command CODE: 034H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CNG_ON_COMMAND outputs an ITU-T T.4 specified 1100 Hz tone. EXAMPLE: CNG_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CNG_OFF_COMMAND ************************************************************************** DTMF_Detect_Off_Command Characteristic Description COMMAND: DTMF_Detect_Off_Command CODE: 074H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_OFF_COMMAND disables the Fax capability to detect DTMF tones while in the Voice/DTMF mode. EXAMPLE: IDLE - FAX DTMF_DETECT_OFF_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** DTMF_Detect_On_Command Characteristic Description COMMAND: DTMF_Detect_On_Command CODE: 073H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_ON_COMMAND enables the Fax capability to detect DTMF tones while in the Voice/DTMF mode. EXAMPLE: IDLE - FAX DTMF_DETECT_ON_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** DTMF_Detect_Status Characteristic Description COMMAND: DTMF_Detect_Status CODE: 070H CATEGORY: Voice , Status DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: DTMF digit in DATA_AREA DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_STATUS informs the Host that a DTMF tone was detected while in VOICE/DTMF mode. The DTMF_DETECT_STATUS command is only issued after a DTMF_DETECT_ON_COMMAND. EXAMPLE: DTMF_DETECT_ON_COMMAND - Host . . . SILENCE_DETECTED_STATUS - FAX PC_ACK - Host ...load DTMF byte in DATA_AREA - FAX DTMF_DETECT_STATUS - FAX ...retrieve DTMF byte - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", DTMF_DETECT_ON_COMMAND, DTMF_DETECT_OFF_COMMAND ************************************************************************** DTMF_Dial_Command Characteristic Description COMMAND: DTMF_Dial_Command CODE: 02CH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: DTMF number at OFFSET 00H in buffer_area Max. number length 60 characters OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_DIAL_COMMAND dials the digits stored at BUFFER_AREA. The dial command does not connect the phone line. The line must be connected with an OFF_HOOK_COMMAND. The dial string has several digits and modifiers. The DTMF digits supported are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, #, A, B, C, D. The dial modifiers are: JT Fax 9600B COMPATIBILITY First byte: 'P' - Pulse Dial 'T' - Tone Dial Second byte: 'W' - Wait for Dial Tone ' ' - Do not Wait If the first two bytes are 'MA' (Manual Dial) a number will not be dialed. JT Fax 14400B -------------------------- P - pulse dial T - tone dial W - wait for dialtone , - 2 second pause ! - flash hook I - no busy detect Note: This command may be used in Voice offline mode. EXAMPLE: IDLE - FAX (load string value in buffer_area) - Host DIAL_DTMF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_ON_TIME_COMMAND, DTMF_OFF_TIME_COMMAND ************************************************************************** DTMF_Off_Command Characteristic Description COMMAND: DTMF_Off_Command CODE: 029H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_OFF_COMMAND commands the JT Fax to terminate a DTMF tone. The command does not disconnect the line. EXAMPLE: IDLE - FAX DTMF_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: DTMF_ON_COMMAND, FAX_MODE_COMMAND, ON_HOOK_COMMAND ************************************************************************** DTMF_Off_Time_Command Characteristic Description COMMAND: DTMF_Off_Time_Command CODE: 02BH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: DTMF time at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 70 ms DESCRIPTION: DTMF_OFF_TIME_COMMAND configures the interdigit off time for automatic dialing of DTMF digits. The value specified is in milliseconds with a length of WORD. Max. value is 65 seconds. Standard minimum value is 65 ms. EXAMPLE: IDLE - FAX (load word value in buffer_area) - Host DTMF_OFF_TIME_COMMAND - - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_DIAL_COMMAND, DTMF_ON_TIME_COMMAND ************************************************************************** DTMF_On_Command Characteristic Description COMMAND: DTMF_On_Command CODE: 028H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: DTMF tone digit at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_ON_COMMAND commands the JT Fax to send a DTMF digit specified by the value in BUFFER_AREA. The duration of the tone is controlled by the Host. The command does not connect the phone line. The tone is terminated by the DTMF_OFF_COMAMND. Note: JT Fax must be in Fax mode for Utility commands. EXAMPLE: IDLE - FAX (load digit in buffer area) - Host DTMF_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: DTMF_OFF_COMMAND, FAX_MODE_COMMAND, OFF_HOOK_COMMAND ************************************************************************** DTMF_On_Time_Command Characteristic Description COMMAND: DTMF_On_Time_Command CODE: 029H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: DTMF time at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 70 ms DESCRIPTION: DTMF_ON_TIME_COMMAND sets the on-time for automatic dialing of DTMF digits. The value specified is in milliseconds with a length of WORD. Max. value is 65 seconds. The standard minimum value is 65 ms. EXAMPLE: IDLE - FAX (load word value in buffer_area)- Host DTMF_ON_TIME_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_DIAL_COMMAND, DTMF_OFF_TIME_COMMAND ************************************************************************** Enhanced_Mode_Off_Command Characteristic Description COMMAND: Enhanced_Mode_Off_Command CODE: 053H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The ENHANCED_MODE_OFF_COMMAND allows the JT Fax 14400B to operate in 9600B compatible mode. All status messages, error codes and speeds provided by the 14400B are disabled. EXAMPLE: IDLE - FAX ENHANCED_MODE_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, FAX_144_MODE_OFF_COMMAND, ENHANCED_MODE_ON_COMMAND ************************************************************************** Enhanced_Mode_On_Command Characteristic Description COMMAND: Enhanced_Mode_On_Command CODE: 052H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The ENHANCED_MODE_ON_COMMAND allows the JT Fax 14400B to operate in enhanced mode. All status messages, error codes and speeds provided by the 14400B are enabled. EXAMPLE: IDLE - FAX ENHANCED_MODE_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, FAX_144_MODE_ON_COMMAND, ENHANCED_MODE_OFF_COMMAND ************************************************************************** EOD_Flag Characteristic Description COMMAND: EOD_Flag CODE: 076H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The EOD_FLAG terminates the DTMF search. Any other command can be issued after this command sequence is complete. EXAMPLE: IDLE - FAX GET_DTMF_COMMAND - Host BOARD_ACK_COMMAND - FAX ...byte in data_area - FAX DTMF_DETECT_STATUS - FAX ...retrieve byte from data_area - Host PC_ACK - Host ...continue looking for DTMF - FAX . . . EOD_FLAG - HOST BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF" ************************************************************************** EOPFLAG Characteristic Description COMMAND: EOPFLAG CODE: 08H CATEGORY: Fax DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: EOPFLAG signifies that an end of page is necessary. The Host may elect to use the LINE_COUNT field in the API block for setting an end of page. The Fax page is transmitted until the line count is reached ( MIN_PAGE = non zero) and an EOP is issued to the called device. If the FAX page was short and a standard page length is used, then the LINECOUNT field sets the page length (MIN_PAGE = 0). All pages are the length of LINECOUNT. When using the EOPFLAG a PC_ACK command is not necessary. EXAMPLE: LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . LOAD_DATA_COMMAND - FAX ...load data - Host EOPFLAG - Host LOAD_DATA_COMMAND - FAX . . . RELATED FUNCTIONS: LOAD_DATA_COMMAND, EOTFLAG ************************************************************************** EOTFLAG Characteristic Description COMMAND: EOTFLAG CODE: 0FH CATEGORY: Fax DIRECTION: JT Fax to Host Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: EOTFLAG signifies an end of data transfer. The Fax command can be issued from either the Host or JT Fax. The Host issues the command in the XMIT_MODE to end data transmission, or in downloadable fonts to end the font download. The JT Fax issues the command to end a Fax reception. EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host EOTFLAG - Host . . . IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, RECVINIT, LOADFONT_COMMAND, "Error Codes, EOV_FLAG ************************************************************************** EOV_FLAG Characteristic Description COMMAND: EOV_FLAG CODE: 066H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA LOAD_DATA_COMMAND DEFAULT: Not applicable DESCRIPTION: The EOV_FLAG notifies the Host/Fax that the last buffer of data is in the DATA_AREA. This command is issued after a PLAY_START_COMMAND sequence. The command is used for voice data only. EXAMPLE: REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX ...load data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX ...load data from DATA_AREA - Host REC_STOP_COMMAND - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, RECVINIT_COMMAND ************************************************************************** Error Characteristic Description COMMAND: Error CODE: 06H CATEGORY: Status DIRECTION: JT Fax to Host INPUT to JT: IDLE OUTPUT from JT: RET_CODE contains error code DEFAULT: Not applicable DESCRIPTION: ERROR signifies that an error has occurred. The type of error can be retrieved from the RET_CODE field. ERROR does require the host to reset the COMMAND_DATA field to IDLE when the error code is read. EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . ERROR - JT Fax BUSY(ret_code field) - JT Fax (check ret_code) - Host IDLE - Host RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, RECVINIT, Error Codes ************************************************************************** Extend_Status_Off_Command Characteristic Description COMMAND: Extend_Status_Off_Command CODE: 04FH CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The EXTEND_STATUS_OFF_COMMAND disables the extended status available to the Host with the JT Fax 14400B. The status codes do not appear in the STATUS field of the API block and the status command is not issued. EXAMPLE: IDLE - FAX EXTEND_STATUS_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, STATUS_COMMAND ************************************************************************** Extend_Status_On_Command Characteristic Description COMMAND: Extend_Status_On_Command CODE: 04EH CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The EXTEND_STATUS_ON command enables the extended status available to the Host with the JT Fax 14400B. The status codes appear in the STATUS field of the API block after the status command is issued. EXAMPLE: IDLE - FAX EXTEND_STATUS_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, STATUS_COMMAND ************************************************************************** FAX_144_Mode_Off_Command Characteristic Description COMMAND: FAX_144_Mode_Off_Command CODE: 051H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The FAX_144_MODE_OFF_COMMAND allows the JT Fax 14400B to be compatible with the JT Fax 9600B. This command is included due to the change in the speed indexes for 14,400 bps. EXAMPLE: IDLE - FAX FAX_144_MODE_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, FAX_144_MODE_ON_COMMAND, ENHANCED_MODE_OFF_COMMAND ************************************************************************** FAX_144_Mode_On_Command Characteristic Description COMMAND: FAX_144_Mode_On_Command CODE: 050H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The FAX_144_MODE_ON_COMMAND allows the JT Fax 14400B to enable reception of Faxes at the 14,400 bps rate. This command is included due to the change in the speed indexes for 14,400 bps. An index value of 5 in the BAUD_RATE field indicates 14,400 bps and a 4 indicates 12,000 bps. This command only affects the speed. EXAMPLE: IDLE - FAX FAX_144_MODE_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, FAX_144_MODE_OFF_COMMAND, ENHANCED_MODE_ON_COMMAND ************************************************************************** FAX_Mode_Command Characteristic Description COMMAND: FAX_Mode_Command CODE: 026H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: MODEM MODE in Command State FAX MODE is automatic with Fax commands DESCRIPTION: The FAX_MODE_COMMAND is required for all Utility commands. The command also allows JT Fax to control the Telco line interface instead of requiring OEM daughter cards. PC Bus access is available in both Fax and Modem mode. If a daughter card is not attached, Modem mode will not be necessary for JT Fax. EXAMPLE: IDLE - FAX FAX_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX OFF_HOOK_COMMAND - Host RELATED FUNCTIONS: MODEM_MODE_COMMAND, "Utility Commands" ************************************************************************** Gain_Down_Command Characteristic Description COMMAND: Gain_Down_Command CODE: 068H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The GAIN_DOWN_COMMAND decrements the maximum gain of the voice record by 1 dB. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The value is retained between recordings. EXAMPLE: IDLE - FAX GAIN_DOWN_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Gain_Up_Command Characteristic Description COMMAND: Gain_Up_Command CODE: 067H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The GAIN_UP_COMMAND increments the maximum gain of the voice record by 1 dB. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The value is retained between recordings. EXAMPLE: IDLE - FAX GAIN_UP_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Get_DTMF_Command Characteristic Description COMMAND: Get_DTMF_Command CODE: 075H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Byte value in DATA_AREA DEFAULT: Not applicable DESCRIPTION: The GET_DTMF_COMMAND can also be used in command state. The command initiates DTMF mode and continually searches for DTMF tones. The EOD_FLAG terminates the DTMF search. Any other command can be issued after this command. The "on/off hook" is controlled by the Host. EXAMPLE: IDLE - FAX GET_DTMF_COMMAND - Host BOARD_ACK_STATUS - FAX ...byte in data_area - FAX DTMF_DETECT_STATUS - FAX ...retrieve byte from data_area - Host PC_ACK - Host ...continue looking for DTMF - FAX . . . EOD_FLAG - HOST BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", EOD_FLAG ************************************************************************** Good_Init Characteristic Description COMMAND: Good_Init CODE: 0F0H CATEGORY: FAX - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The GOOD_INIT command is issued after a BOARD_SYNC_COMMAND is received following power up. It indicates that the FAX is ready for commands and the ROM/RAM test was good. EXAMPLE: BOARD_SYNC_COMMAND - Host GOOD_INIT - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ************************************************************************** Hardware_Reset_Command Characteristic Description COMMAND: Hardware_Reset_Command CODE: 030H CATEGORY: Control DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The HARDWARE_RESET_COMMAND instructs JT Fax to initiate a "power on reset" function. The command is placed in the API block location, RESET_BOARD, at offset 51H. When RESET_BOARD is set to a HARDWARE_RESET_COMMAND, then the following happens: RAM and ROM test is executed data pump is reset, memory cleared all options set to default conditions. After six seconds, JT Fax starts waiting for a SYNC_COMMAND from the Host. A SYNC_COMMAND must be issued by the Host before any commands can be accepted. Note: This command should be used a last resort because it resets the JT Fax hardware and all user configurations to default. EXAMPLE: IDLE - FAX HARDWARE_RESET_COMMAND - Host (wait for 6 seconds) SYNC_COMMAND - Host IDLE_STATUS - FAX RELATED FUNCTIONS: SYNC_COMMAND, SOFTWARE_RESET_COMMAND ************************************************************************** Idle_Status Characteristic Description COMMAND: Idle_Status CODE: 01H CATEGORY: Status DIRECTION: JT Fax to Host Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: IDLE_STATUS is a compatibility status code/command. The command is issued to reset the Command field. The command is used by the Host in response to a BOARD_ACK_STATUS, or by JT Fax in response to a PC_ACK command or when in command state waiting for command. This command should only be used while in command state. EXAMPLE: IDLE - FAX (load time in buffer area - Host SET_CARRIER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - Host RELATED FUNCTIONS: BOARD_ACK_STATUS, PC_ACK ************************************************************************** Load_Data_Command Characteristic Description COMMAND: Load_Data_Command CODE: 03H CATEGORY: FAX DIRECTION: JT Fax to Host INPUT to JT: Data in DATA_AREA PC_ACK EOTFLAG EOPFLAG OUTPUT from JT: none LOAD_DATA_COMMAND EOTFLAG (receive mode only) DEFAULT: Not applicable DESCRIPTION: The LOAD_DATA_COMMAND is used when large amounts of data are needed. The direction of the load depends on the mode selected. If in TRANSMIT_MODE, the load data command is issued by JT Fax to indicate that data is ready to be received from the Host in the DATA_AREA. Once all the data has been placed in the DATA_AREA, the Host issues a PC_ACK. In the RECEIVE_MODE, the command is issued by JT Fax to alert the Host that data is available in the data area to be retrieved. After the Host retrieves the data, the host issues a PC_ACK. EXAMPLE: RECEIVE_MODE only RECVINIT - JT Fax (Host load ID in Buffer Area) PC_ACK - Host LOAD_DATA_COMMAND - JT Fax (Host retrieves data) PC_ACK - Host . . . EOT - JT Fax RELATED FUNCTIONS: EOT_FLAG, RECVINIT, PC_ACK ************************************************************************** Load_Font_Command Characteristic Description COMMAND: Load_Font_Command CODE: 04H CATEGORY: FAX DIRECTION: Host to JT Fax INPUT to JT: Font Data in DATA_AREA EOTFLAG OUTPUT from JT: BOARD_ACK FONT_TOO_LARGE DEFAULT: Not applicable DESCRIPTION: The LOAD_FONT_COMMAND is used to load the predefined JT Fax fonts or a user designed font (see Chapter 7). The font would be used only in transmit mode and file type ASCII_TYPE. Since the font data is larger than the DATA area several LOAD_DATA_COMMANDS would be issued by JT Fax. Issuing a HARD_RESET_COMMAND destroys a soft font, requiring a reload. Issuing a SOFT_RESET_COMMAND does not destroy a soft font. EXAMPLE: LOAD_FONT_COMMAND - Host LOAD_DATA_COMMAND - JT Fax ...load data in data_area - Host PC_ACK - Host LOAD_DATA_COMMAND - JT Fax . . . EOT - Host RELATED FUNCTIONS: PC_ACK, EOT, LOAD_DATA_COMMAND, "JT Fax Fonts" ************************************************************************** Manual_REC_Command Characteristic Description COMMAND: MANUAL_REC_COMMAND CODE: 10H CATEGORY: Fax DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: Manual receive enables the Host to force JT Fax to answer a call. The EXTEND_STATUS mode must be enabled before the STATUS command is received. A RING status appears in the STATUS_CODE field. After the status is retrieved, the Host returns the COMMAND field to IDLE. EXAMPLE: IDLE - FAX STATUS_COMMAND - FAX ...retrieve status code RING - Host MANUAL_REC_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . RELATED FUNCTIONS: "Status Codes", STATUS_COMMAND ************************************************************************** Modem_Mode_Command Characteristic Description COMMAND: Modem_Mode_Command CODE: 027H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: MODEM MODE in Command State FAX MODE is automatic with FAX commands DESCRIPTION: The MODEM_MODE_COMMAND is required to remove the previous FAX_MODE_COMMAND. The command also allows the OEM daughter Card to control the Telco line interface instead of JT Fax. PC Bus access is available in both Fax mode and Modem mode. If a Daughter card is not attached, Modem mode will not be necessary for JT Fax. EXAMPLE: IDLE - FAX FAX_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX OFF_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX MODEM_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND ************************************************************************** No_Busy_Command Characteristic Description COMMAND: No_Busy_Command CODE: 02EH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Detect Busy DESCRIPTION: The NO_BUSY_COMMAND instructs the JT Fax to ignore the busy signal. EXAMPLE: IDLE - FAX NO_BUSY_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_DIAL_COMMAND, DTMF_DIAL_COMMAND ************************************************************************** OEM_Code_Command Characteristic Description COMMAND: OEM_Code_Command CODE: 079H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The OEM_CODE_COMMAND executes Host code that was downloaded to the Fax. The Fax utilizes a 16 MHz processor. The OEM_CODE_COMMAND executes custom assembly language code for the Host. The OEM code and data can be no larger than 28 KB. The OEM code has access to the command byte structure at 0:8000H. The code segment must be "0" and the code or data must start at 0:8800H. Additional 3K of RAM is available at 0:67D0H. (See Appendix F). EXAMPLE: IDLE - FAX OEM_CODE_COMMAND - Host ...OEM code executes - FAX ...OEM code terminates - FAX BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "OEM CODE ", OEM_LOAD_COMMAND ************************************************************************** OEM_Load_Command Characteristic Description COMMAND: OEM_Load_Command CODE: 07AH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: OEM code in DATA_AREA OUTPUT from JT: LOAD_DATA_COMMAND BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The OEM_LOAD_COMMAND loads the OEM code into the Soft Font RAM. The OEM code and data can be no larger than 28 KB. The OEM_LOAD_COMMAND sequence is similar to the LOADFONT_COMMAND sequence. If the OEM code is larger than the space available, a FONT_TOO_LARGE error is returned. The load aborts when the error is reported. The OEM code remains in RAM until power up or a HARDWARE_RESET_COMMAND or LOAD_FONT_COMMAND is issued. Note Soft fonts are not available when using this command. EXAMPLE: IDLE - FAX OEM_LOAD_COMMAND - Host LOAD_DATA_COMMAND - JT Fax ...Load OEM code into Data_area - Host PC_ACK - Host LOAD_DATA_COMMAND - JT Fax . . . EOT - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "OEM CODE ", OEM_CODE_COMMAND, LOAD_FONT_COMMAND ************************************************************************** Off_Hook_Command Characteristic Description COMMAND: Off_Hook_Command CODE: 025H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The OFF_HOOK_COMMAND forces the JT Fax to go "Off-Hook" (i.e., pickup the phone). The command is used when the Host wants to initiate a dialing sequence (DTMF or Pulse). The OFF_HOOK_COMMAND returns to Command state after completion. Note: JT Fax must be in FAX_MODE to use Utility commands. EXAMPLE: IDLE - FAX OFF_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND, ON_HOOK_COMMAND ************************************************************************** On_Hook_Command Characteristic Description COMMAND: On_Hook_Command CODE: 024H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The ON_HOOK_COMMAND forces the JT Fax to go "on- hook". The command is used after "OFF_HOOK_COMMAND" has been issued when the Host requires a return to "on-hook" condition (i.e., hang-up). The ON_HOOK_COMMAND returns to Command state after completion. Note: JT Fax must be in FAX_MODE to use Utility commands. EXAMPLE: IDLE - FAX ON_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND, OFF_HOOK_COMMAND ************************************************************************** Online_Voice_Record_Off Characteristic Description COMMAND: Online_Voice_Record_Off CODE: 78H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Off DESCRIPTION: This API command turns the online voice record option off. This command can be issued after the voice message has been received to prevent premature termination of tone or voice greeting messages. EXAMPLE: IDLE - Host . . . ONLINE_VOICE_RECORD_ON - Host BOARD_ACK - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host . . . EOVFLAG - FAX ...Load data from Data Area - Host PC_ACK - Host IDLE - FAX ONLINE_VOICE_RECORD_OFF - Host BOARD_ACK - FAX RELATED FUNCTIONS: ONLINE_VOICE_RECORD_ON, EOVFLAG, RECORD_START_COMMAND ************************************************************************** Online_Voice_Record_On Characteristic Description COMMAND: Online_Voice_Record_On CODE: 77H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Off DESCRIPTION: This API provides the option to record voice messages while online. The message is terminated after the caller disconnects and dial tone is detected. Since tones in the range of 350-620 Hz cause termination, it is necessary to disable this option during all other recordings. EXAMPLE: IDLE - Host . . . SILENCE_DETECTED_STATUS - FAX . . . ONLINE_VOICE_RECORD_ON - Host BOARD_ACK - FAX PC_ACK - Host REC_START_COMMAND - Host . . . EOVFLAG - FAX ...Load data from Data Area - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: ONLINE_VOICE_RECORD_OFF, EOVFLAG, RECORD_START_COMMAND ************************************************************************** PC_ACK Characteristic Description COMMAND: PC_ACK CODE: 05H CATEGORY: STATUS handshake DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None, Idle DEFAULT: Not applicable DESCRIPTION: The PC_ACK command is used as acknowledgment between the PC software and the JT Fax 14400B. The response is appropriate when receiving a command from the JT Fax 14400 B Dual board. A PC_ACK does not require a response from the JT Fax 14400B Dual board. EXAMPLE: . . . GET_DTMF_COMMAND - Host BOARD_ACK_STATUS - JT Fax DTMF_DETECT_STATUS - JT Fax (retrieve DTMF code) PC_ACK - Host . . . RELATED FUNCTIONS: LOAD_DATA_COMMAND, RECVINIT, LOAD_FONT_COMMAND, BOARD_ACK_STATUS ************************************************************************** Play_End_Command Characteristic Description COMMAND: Play_End_Command CODE: 063H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The PLAY_END_COMMAND stops the playback of a voice file in voice mode. The current buffer is deleted and the voice transmission is halted. EXAMPLE: PLAY_START_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX PLAY_END_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", PLAY_START_COMMAND, EOV_FLAG ************************************************************************** Play_Start_Command Characteristic Description COMMAND: Play_Start_Command CODE: 062H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: Binary Voice data in DATA_AREA OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The PLAY_START_COMMAND initiates the playing of a recorded voice file. The command sequence is similar to a XMIT_COMMAND. An EOV_FLAG is issued when the last voice data is entered in DATA_AREA. The timing for loading data is the same as XMIT_COMMAND for JT Fax data formats. EXAMPLE: PLAY_START_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host EOV_FLAG - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR, PLAY_STOP_COMMAND, EOV_FLAG ************************************************************************** Pulse_Break_Command Characteristic Description COMMAND: Pulse_Break_Command CODE: 03AH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area in milliseconds OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 60 milliseconds DESCRIPTION: The PULSE_BREAK_COMMAND requires the Host to set the value of the "BREAK" portion of the make/break ratio for pulse dialing. The value is written into buffer_area before the command is issued. EXAMPLE: IDLE - FAX PULSE_BREAK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: PULSE_MAKE_COMMAND, PULSE_DIAL_COMMAND ************************************************************************** Pulse_Dial_Command Characteristic Description COMMAND: Pulse_Dial_Command CODE: 02DH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: Pulse number at OFFSET 00H in buffer_area Max. number length 60 characters. OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: PULSE_DIAL_COMMAND dials the phone number at BUFFER_AREA. The command does not connect the phone line. The line must be connected with an OFF_HOOK_COMMAND. The dial string has several digits and modifiers. The DTMF digits supported are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. The dial modifiers are: JT Fax 9600B COMPATIBILITY ------------------------------- First byte: 'P' - Pulse Dial 'T' - Tone Dial Second byte: 'W' - Wait for Dial Tone ' ' - Do not Wait If the first two bytes are 'MA' (Manual Dial) a number will not be dialed. JT Fax 14400B --------------------------- P - pulse dial T - tone dial W - wait for dialtone , - 2 second pause ! - flash hook I - no busy detect Note: JT Fax must be in Fax mode for Utility commands. EXAMPLE: IDLE - FAX (load string value in buffer_area) - Host PULSE_DIAL_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_INTER_COMMAND ************************************************************************** Pulse_Inter_Command Characteristic Description COMMAND: Pulse_Inter_Command CODE: 032H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Time in milliseconds, WORD value in buffer_area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 600 milliseconds DESCRIPTION: The PULSE_INTER_COMMAND sets the interdigit time of the pulse dial. The units of the command are in milliseconds. EXAMPLE: IDLE - FAX (value in buffer_area) - Host PULSE_INTER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - FAX RELATED FUNCTIONS: PULSE_BREAK_COMMAND, PULSE_MAKE_COMMAND ************************************************************************** Pulse_Make_Command Characteristic Description COMMAND: Pulse_Make_Command CODE: 03BH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area in milliseconds OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 40 milliseconds DESCRIPTION: The PULSE_MAKE_COMMAND requires the Host to set the value of the "make" portion of the make/break ratio for pulse dialing. The value is written into buffer_area before the command is issued. EXAMPLE: IDLE - FAX PULSE_MAKE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: PULSE_MAKE_COMMAND, PULSE_DIAL_COMMAND ***************************************************************************** RecvInit Characteristic Description COMMAND: RecvInit CODE: 10H CATEGORY: Fax DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: RECVINIT command is issued to the Host when JT Fax detects an incoming call. The call may be a voice call or a fax call. It is up to the Host to make this determination (see Chapter 4) and decide to initiate voice procedures, disconnect, or continue the call. The default is to continue the call. If the caller is voice and CNG_DETECT is not enabled, the CED is transmitted and the call disconnects when Carrier timer expires. CNG detect mode has several options (see Chapter 4). EXAMPLE: IDLE - FAX RECVINIT_COMMAND - FAX ...(load ID into Buffer Area) - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...retrieve data - Host PC_ACK - Host . . . EOTFLAG - JT Fax ...retrieve data - Host PC_ACK - Host IDLE - JT Fax RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, SET_VOICE_COMMAND, DTMF_DETECT_COMMAND, DTMF_DETECT, SILENCE_DETECTED, SET_ACTIVITY_TIMER, "Error Codes" ************************************************************************** Rec_PCX_Off_Command Characteristic Description COMMAND: Rec_PCX_Off_Command CODE: 023H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: PCX receive conversion disabled DESCRIPTION: REC_PCX_OFF_COMMAND configures JT Fax to convert the caller's T.4 encoded file to a JT_FAX_FORMAT. EXAMPLE: IDLE - FAX REC_PCX_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: RECVINIT, MANUAL_REC_COMMAND, "Data Formats" ************************************************************************** Rec_PCX_On_Command Characteristic Description COMMAND: Rec_PCX_On_Command CODE: 022H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: PCX receive conversion disabled DESCRIPTION: REC_PCX_ON_COMMAND configures JT Fax to convert the caller's T.4 encoded file to a PCX version 3 file. The PCX header is given to the Host in the first data load. EXAMPLE: IDLE - FAX REC_PCX_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: RECVINIT, MANUAL_REC_COMMAND ************************************************************************** Rec_Start_Command Characteristic Description COMMAND: Rec_Start_Command CODE: 064H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA Load_Data_Command DEFAULT: Not applicable DESCRIPTION: The REC_START_COMMAND instructs the fax to initiate a recording session. The command sequences are similar to the receive Fax data. Once the command is issued, the data pump is configured and voice data from the A/D converter is read immediately. The data sampling continues until a REC_STOP_COMMAND is issued. EXAMPLE: REC_START_STATUS - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...retrieve data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host . . . RELATED FUNCTIONS: "Voice and DTMF", REC_STOP_COMMAND, RECVINIT_COMMAND Note: This command can be used to record offline on Fax A with a microphone. Recording may be done while connected on-line with either Fax A or Fax B using the phone line as input. ************************************************************************** Rec_Stop_Command Characteristic Description COMMAND: Rec_Stop_Command CODE: 065H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA Load_Data_Command EOV_FLAG DEFAULT: Off DESCRIPTION: The REC_STOP_COMMAND instructs the JT Fax to terminate a recording session. The recording stops and the data in the record buffers is transmitted to the Host. To end the transmission of data to the Host, the JT Fax issues an EOV_FLAG. EXAMPLE: REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host REC_STOP_COMMAND - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, RECVINIT_COMMAND Note: After recording messages, disconnect the microphone from Fax A. ************************************************************************** Reset_Data_Pump_Command Characteristic Description COMMAND: Reset_Data_Pump_Command CODE: 033H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The RESET_DATA_PUMP command resets the Fax data pump. When resetting the data pump, the chip returns to its initial power on state. This command should only be used before the DIAL_DTMF_COMMANDS state. The command is used by JT Fax to set the data pump to a known state after each call or receive. EXAMPLE: RESET_DATA_PUMP_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: HARDWARE_RESET_COMMAND ************************************************************************** Return_to_Command Characteristic Description COMMAND: Return_to_Command CODE: 072H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The RETURN_TO_COMMAND terminates voice mode and returns to command state. The JT Fax returns to command state, and the data pump is reset. The phone line may be disconnected by the ON_HOOK_COMMAND if desired. EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host RETURN_TO_COMMAND - HOST BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, RETURN_TO_DATA_COMMAND ************************************************************************** Return_to_Data_Command Characteristic Description COMMAND: Return_to_Data_Command CODE: 071H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The RETURN_TO_DATA_COMMAND terminates voice mode and returns to complete a fax call. The JT Fax is returned to fax data at the beginning of Phase A and transmits the CED to the caller. (See Chapter 6). EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host RETURN_TO_DATA_COMMAND - Host BOARD_ACK_STATUS - FAX ...send CED - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** Setup_Voice_Command Characteristic Description COMMAND: Setup_Voice_Command CODE: 05FH CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SETUP_VOICE_COMMAND must be issued from command state. The command is used to enter voice mode for RECORDING or PLAYBACK and testing. Once in the VOICE mode, all voice commands can be issued and DTMF detection is enabled. See Chapter 6. EXAMPLE: IDLE - FAX SETUP_VOICE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: Voice and DTMF" ************************************************************************** Set_Act_Timer_Command Characteristic Description COMMAND: Set_Act_Timer_Command CODE: 06FH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 3.5 seconds DESCRIPTION: The SET_ACT_TIMER_COMMAND sets the activity timer when CNG_DETECT_ON_COMMAND has been issued. The timer value is specified in milliseconds and has a range from 0-65000. The activity timer starts after the Fax picks up the phone line. If a CNG tone is detected (Fax caller), the timer is reset, a CED is transmitted (Fax callee) and the Fax call continues. However, if silence is detected (no CNG tone) for the duration of the activity timer, the SILENCE_DETECT_STATUS is issued. The JT Fax automatically enters VOICE/DTMF mode. Note: Cycle time for a CNG_TONE is 3 seconds off, 0.5 seconds on. EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host IDLE - Host . . . PLAY_START_COMMAND - Host . . . RELATED FUNCTIONS: "Voice and DTMF", PLAY_START_COMMAND, DTMF_DIAL_COMMAND, DTMF_DETECT_ON_COMMAND ************************************************************************** Set_Carrier_Command Characteristic Description COMMAND: Set_Carrier_Command CODE: 020H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Wait for carrier time buffer area (word value) - in milliseconds max. (65 seconds) OUTPUT from JT: BOARD_ACK DEFAULT: 60 sec DESCRIPTION: The SET_CARRIER_COMMAND sets the time to wait for the caller and called station to complete Phase A. The NO_CARRIER timer starts after the dial and terminates at the beginning of Phase B. If the timer expires, the call is disconnected and an ERROR status returned to the host. Carrier may also be set placing a work value into Buffer Area [0] before a Sync Command is issued. Units are in milliseconds. EXAMPLE: (load time in buffer area) - Host SET_CARRIER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: ERROR, "Error Codes", "Status Codes" ************************************************************************** Set_Gain_Command Characteristic Description COMMAND: Set_Gain_Command CODE: 069H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The SET_GAIN_COMMAND sets the maximum gain of the voice recording. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The maximum gain is calculated by the following formula: MAX_GAIN = 655.36 [ 50 - Gain Limit (dB) ]. The value should be a 16-bit, positive, twos compliment value. The value is retained between recordings. EXAMPLE: IDLE - FAX ...load Gain Limit WORD in buffer_area - Host SET_GAIN_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_Sample_Rate_Command Characteristic Description COMMAND: Set_Sample_Rate_Command CODE: 06AH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: BYTE value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 9600 Hz DESCRIPTION: The SET_SAMPLE_RATE_COMMAND sets the sampling rate of the voice recording. The value placed into the Buffer_Area is an index to the provided sample rates. The following is an EXAMPLE of the available sample rates: --------------- 1 9600 Hz 2 8000 Hz 3 7200 Hz The value is retained between voice mode sessions. EXAMPLE: IDLE - FAX ...load BYTE in buffer_area - Host SET_SAMPLE_RATE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_Slew_Rate_Command Characteristic Description COMMAND: Set_Slew_Rate_Command CODE: 06BH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: WORD value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 0 DESCRIPTION: The SET_SLEW_RATE_COMMAND sets the slew rate of the voice recording. The value is placed into the Buffer_Area. The Slew rate value determines the fall off time of the voice wave form. The value can be adjusted by the following formula, SLEW_RATE = [19968/(Sample Rate x fall time in seconds)]. The value is a 16-bit, positive, twos compliment value. The value is retained between voice sessions. EXAMPLE: IDLE - FAX ...load BYTE in buffer_area - Host SET_SLEW_RATE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_User_CSI_Command Characteristic Description COMMAND: Set_User_CSI_Command CODE: 055H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Buffer_Area 20 byte CSI OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SET_USER_CSI_COMMAND provides flexibility in Fax identification. TSI/CSI Fax information for transmit and receive can be modified to contain a specialized message. The format previously available for 9600B allowed the CSI to be placed in the buffer area on transmit and receive. The format of header data in the BUFFER_AREA consisted of: 0-20 CSI 21-54 -other user information 55 - Page number followed by space (transmit only) 56 - 61 padded spaces. The CSI was always contained in the header of the transmitted page. In receive mode, the CSI was transmitted to the caller. Since the CSI appeared on the Fax page as a header, there was no way to send different CSI data to the caller/callee. This command allows two different messages to appear to the caller/callee. One message in the CSI and the other in the printed Fax header. The SET_USER_CSI mode can only be cleared with a HARD_RESET. EXAMPLE: IDLE - FAX SET_USER_CSI_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, "Buffer Area" ************************************************************************** Set_User_TSI_Command Characteristic Description COMMAND: Set_User_TSI_Command CODE: 054H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Buffer_Area 20 byte TSI OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SET_USER_TSI_COMMAND provides flexibility in fax identification. TSI/CSI fax information for transmit and receive can be modified to contain a specialized message. The format previously available for 9600B allowed the TSI to be placed in the buffer area on transmit and receive. The format of header data in the BUFFER_AREA consisted of: 0-20 TSI 21-54 -other user information 55 - Page number followed by space (transmit only) 56 - 61 padded spaces. The TSI was always contained in the header of the transmitted page. In receive mode, the TSI was transmitted to the caller. Since the TSI appeared on the Fax page as a header, there was no way to send different TSI data to the caller/callee. This command allows two different messages to appear to the caller/callee. One message in the TSI and the other in the printed Fax header. The SET_USER_TSI mode can only be cleared with a HARD_RESET. EXAMPLE: IDLE - FAX SET_USER_TSI_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, "Buffer Area" ************************************************************************** Silence_Detected_Status Characteristic Description COMMAND: Silence_Detected_Status CODE: 06CH CATEGORY: Voice DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The SILENCE_DETECTED_STATUS notifies the Host that a CNG tone was not detected within the user-defined time limit. The notification only occurs if a CNG_DETECT_ON_COMMAND has been previously issued. Once silence has been detected, the JT Fax enters into Voice mode. The Host has the following options 1. voice commands, 2. wait for DTMF detection, 3. return to data and continue call, and 4. return to command and terminate call. EXAMPLE: . . . SILENCE_DETECTED_STATUS - FAX PC_ACK - Host REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, DTMF_DIAL, DTMF_DETECT_ON_COMMAND ************************************************************************** Software_Reset_Command Characteristic Description COMMAND: Software_Reset_Command CODE: 031H CATEGORY: Control DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The SOFTWARE_RESET_COMMAND instructs JT Fax to initiate a soft reset function. The command is placed in the API block location, RESET_BOARD, at offset 51H. When RESET_BOARD is set to a SOFTWARE_RESET_COMMAND, the hardware is reset and all buffers are cleared (soft fonts are not cleared). After the default carrier time is reset to the value contained in BUFFER_AREA, JT Fax is in command state. EXAMPLE: SOFTWARE_RESET_COMMAND - Host (wait for 3 seconds) IDLE_STATUS - FAX RELATED FUNCTIONS: HARDWARE_RESET_COMMAND, SET_CARRIER_COMMAND ************************************************************************** Speaker_Off_Command Characteristic Description COMMAND: Speaker_Off_Command CODE: 03EH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The SPEAKER_OFF_COMMAND is used when the Host wants the speaker off for VOICE setup or when using the Utility commands. In normal JT Fax operation the speaker is controlled by the SPEAKER field of the API block. EXAMPLE: SPEAKER_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: SPEAKER_ON_COMMAND ************************************************************************** Speaker_On_Command Characteristic Description COMMAND: Speaker_On_Command CODE: 03DH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The SPEAKER_ON_COMMAND is used when the Host wants the speaker on for VOICE setup or when using the Utility commands. In normal JT Fax operation the speaker is controlled by the SPEAKER field of the API block. EXAMPLE: SPEAKER_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: SPEAKER_OFF_COMMAND ************************************************************************** Xmit_Command Characteristic Description COMMAND: Xmit_Command CODE: 01H CATEGORY: FAX Transmit DIRECTION: Host to JT Fax INPUT to JT: Phone number in buffer area (if desired) Header in buffer area FAX data in swap buffer EOPFLAG EOTFLAG OUTPUT from JT: LOAD_DATA_COMMAND BOARD_ACK SUCCESSFUL_TRANSMIT BUSY RING status messages DEFAULT: Not applicable DESCRIPTION: This API is the FAX transmit command. The transmit command operates the speaker, dials the phone number, and transfers the fax. After the dial is completed, the Host is prompted for the header information. This header is placed on the top page of the fax and a portion is used for the TSI. Once the header is received, the host is prompted for the data with the LOAD_DATA_COMMAND. The data is passed in the DATA_AREA location. The Host must issue a PC_ACK when all the data is loaded into DATA_AREA. Further LOAD_DATA_COMMANDs are issued until the fax transfer is complete. The Host terminates the transfer with an EOT command. The time constraint placed on the Host for data transfer is based on the format of the data. In the JT Fax format, approximately 10k of data can be buffered on the FAX. So, timing during transmission is only critical during the first initial stages of buffering. The initial stages require data to be loaded as fast as possible. If the data requires translation, the timing is more critical. The Host buffers 2 initial loads. The worst case scenario for ASCII and PCX is approximately 5 seconds between data loads at 14400 bps before data is lost. The data placed in DATA_AREA may be in one of three formats. These are: ASCII_FORMAT 00H PCX_3_FORMAT 01H JT_FAX_FORMAT 63H The formats are discussed in detail in Chapter 7. Characteristic Description EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host (load baud rate if desired) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . EOT - Host TRANSMIT - FAX BOARD_ACK - FAX PC_ACK - Host IDLE - Host When the Host is transmitting multiple pages and wants to control the page breaks, an EOP is issued instead of PC_ACK. To control the length of the page the min_page parameter should be used. RELATED FUNCTIONS: IDLE, EOT, PC_ACK, BOARD_ACK, SET_CARRIER_COMMAND, FAX_MODE_COMMAND, BUSY_COMMAND, ENHANCED_MODE_ON_COMMAND, dial modifiers ========================================================================== Chapter 6 Shared Memory Interface Description All functions, status codes, return codes, and data pass through the JT Fax shared memory interface. The interface address is selectable in 4k increments and is located between memory address 8000H to 0FFFFH (see the Hayes JT Fax 14400B Dual Installation Guide). If the C programming language is used for the Host program, then the compiler should pack the API structure on byte boundaries. This is accomplished in Microsoft C by using the following statement: #pragma pack (1) ************************************************************************** Shared Memory Interface Structure The shared memory interface structure is organized as follows: Note: This map is used with Fax A at offset 0 and Fax B at offset 800H. Offset Length Name Usage/Description -------------------------------------------------------------------------------------- 0000H-0005H ID Location of board address 0005H-0001H COMMAND Commands and Status 0006H-0001H RING_COUNT Ring to answer on 0007H-0001H CALL_MODE Transmit/Receive 0008H-0001H FILE_TYPE ASCII, PCX, JT Fax 0009H-0001H XMIT_FONT Resolution, Font number 000AH-0001H MIN_PAGE Force 11 inch page flag 000BH-003DH BUFFER_AREA Phone numbers & headers 0048H-0002H SECONDS Length of connection 004AH-0001H SPEAKER on, off, on till connect 004BH-0001H RET_CODE Completion code 004CH-0002H PAGES Number of pages sent 004EH-0002H DATA_LEN Length of valid data 0050H-0001H BAUD_RATE 2400, 4800, 7200, 9600, 12000, 14400 baud 0051H-0001H RESET_BOARD Reset the board 0052H-0001H STATUS_CODE Extended status 0053H-0001H LINE_COUNT Number of lines transmitted 0054H-0001H RCV_FILE_TYPE Receive file type 0055H-0002H RCV_LINE Lines per page received (ASCII) 0057H-0001H RESERVED Not used at this time 0058H-07A8H DATA_AREA Used for file data The following paragraphs describe the Shared Memory Interface fields: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ID Field where the product keyword is located. Set by Board. The ID field is used to locate the board at the start of a program. Memory can be searched from segment 8000H to F000H for the 'ASHER' keyword at each 2K boundary. In the JT Fax 14400B tool kit, FINDFAX.ASM file contains an assembler routine that locates the 'ASHER' string. This allows the Host program to locate the board in memory without knowing the exact memory location. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ COMMAND Field for command handshakes. Set by Host and JT Fax. The COMMAND byte is used to pass most commands to the board and some status bytes are returned through this byte. The status bytes are JT Fax 9600B compatible codes described in Chapter 3. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RING_COUNT Field for ring to answer count. Set by Host. Ring_count is a status byte used for the ring-to-answer-on count. The count allows the board to answer the call when a certain number of rings is reached. This byte should be set to 0FH if ring detection is not desired. For originate only applications and manual answers, a status command RING is provided in the first byte of buffer area. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CALL_MODE Field for answer or receive mode. Set by Host. Call_mode should be set prior to making or receiving a call. The call modes currently supported by the board are: Code Description --------------------------------- 00H Call to transmit a fax 02H Answer to receive a fax Note: This option is currently not supported. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ FILE_TYPE Field for specific file type. Set by Host. File_type should be set prior to a transmit. The file_type parameter determines the processing necessary for the JT Fax 14400B Dual to convert data to T.4 format. The field can have the following values: Code Description ------------------------- 00H ASCII_FORMAT 01H PCX _3_FORMAT 63H JT_Fax_FORMAT For additional information see File Formats in Chapter 7. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ XMIT_FONT Field for JT Fax font resolution. Set by Host. Xmit_font field is only used to transmit of data. The field should be set prior to all transmits, and is used to select the font for ASCII and high/low resolution for other types of transmits. If ASCII data is being sent in any font other than font0 (80/low) then that font must be loaded onto the board prior to the transmit. If any other form of data is being sent (i.e., PCX, JT Fax) then 00H and 01H should be used to indicate the resolution. Code Description ---------------------------------------------- 00H 80 character/line low resolution 01H 80 character/line high resolution 02H 132 character/line low resolution 03H 132 character/line high resolution For additional information see JT Fax Formats section Chapter 7. MIN_PAGE Field set for page minimum length. Set by Host. If min_page is zero when the transmit command is issued, all pages will be forced to be at least 11 inches long. If MIN_PAGE is set, the number of lines in linecount is used. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BUFFER_AREA Field for FAX ID, phone number. Set by Host, JT Fax and status messages. Buffer_area is an area used to pass the phone number to be dialed, the header line to put on the top of each page, fax ID and enhanced return codes. The default time-out-after-dial (binary) can also be loaded into buffer_area on start up or can be configured by using the SET_CARRIER_COMMAND function. For more information on buffer area see section Appendix E. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SECONDS Field for time of phases. Set by JT Fax. Seconds is a timer that resets to zero at the start of a call or answer and again after receiving the first carrier from the other end (to get a true connection time). The host has the option to reset the timer. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SPEAKER Field for speaker control. Set by Host. The Speaker byte controls operation of the speaker as follows: Code Description --------------------- 00H SPKR_ALWAYS_ON 01H SPKR_ON_TILL_CONNECT 02H SPKR_ALWAYS_OFF +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RET_CODE Field for errors and JT Fax 9600B status. Set by JT Fax. Ret_code is the error return code from a fax operation. For compatibility, the two 9600B status codes are returned in this field. The values are: Code Description ----------------------------- 0 Successful Transmit 1 No Dial Tone 2 No Carrier 3 Busy 7 Clipped The Handshaking/Compatibility return codes are: Code Description ------------------------------- 128 Bad DIS REC 129 Bad Training 130 Phase B Error 131 Bad MPS Response 132 Bad MCF Response 133 Bad DSC Response 134 Phase D Error 135 No PC Acknowledge 136 No Data Received 137 Page Error on Receive 138 Successful Receive Other Return Codes are described in Appendix B. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PAGES Field for number of pages. Set by JT Fax. Pages is a word that keeps a running count of the number of pages sent. It is updated during transmission and reception. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA_LEN Field for number of bytes in DATA_AREA Set by Host and JT Fax. Fax Data_len is a word that holds the number of data bytes valid in the data_area. It must be loaded prior to a load_data command. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BAUD_RATE Field for connect speed. Set by Host and JT Fax. Baud_rate is a byte that shows the connection speed. At the start of each transmission it defaults to 14400 BPS. For compatibility, the receive defaults to 9600 BPS. 14400 BPS receive can be obtained by issuing the FAX_144_MODE_ON API. The BAUD_RATE field has the following values: Code Description --------------------- 00H 2400 BPS 01H 4800 BPS 02H 7200 BPS 03H 9600 BPS 04H 12000 BPS 05H 14400 BPS The baud rate may be monitored for correct connect speed. Note: This rate may also be modified by the host for transmit speed. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RESET_BOARD Field for reset. Set by Host. This byte is used to reset the board after an error, or it can be done on exit to set the board to a known state. The API HARDWARE_RESET_COMMAND in this byte causes a full reset of the board, including memory testing and clearing and can take 5-6 seconds to complete. The API SOFTWARE_RESET_COMMAND causes a partial reset and does not clear memory. It disconnects the phone line and returns to command state. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS_CODE Field for enhanced status. Set by JT Fax. The status code field provides additional status for Fax transmission. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ LINE_COUNT Field for number lines. Set by Host. Line_count is a byte that gives the number of lines to put on the page before a page break. The function is only applicable when MIN_PAGE is set to 0 and during ASCII transmits. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RECV_FILE_TYPE Field used to indicate the type of file. Set by Host. The values are: Code Description ------------------------- 01H PCX_3_FORMAT 63H JT_FAX_FORMAT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RECV_LINE Field used to indicate the number of PCX lines recieved. Set by JT Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA_AREA Field for data transfer. Set by Host. This is the area used to buffer data out to the board. It is 1960 bytes long. ========================================================================== Chapter 7 File Formats This chapter describes the JT Fax file conversion formats. These formats include: PCX ASCII JT Fax. ***************************************************************************** PCX Conversion The PCX conversion supplied with JT Fax 14400B Dual is a receive "on-the- fly" conversion at all speeds supported. The data presented to the Host includes a PCX 3 header and data. All data is in black and white, 1-plane, 1 bit-per-pixel, xmax (horizontal axis) = 1727; color is not supported. Additional fields are provided for the PCX receive. These new fields are receive type (BYTE) at offset 55H and receive_lines at offset 56H (WORD). The following commands pertain to PCX conversion: REC_PCX_ON_COMMAND REC_PCX_OFF_COMMAND (default) The length of the PCX file (in lines) is reported in the new variable named RECV_LINES and is correct when the EOT is received from the fax. The RECV_LINES count should be placed in the PCX file by the Host. The offset into the PCX file for this count is 10 (zero relative) and is WORD value. The PCX_RECV_ON_COMMAND must be issued after setting Recvfile type to PCX. ************************************************************************** ASCII The following sections describe ASCII font management in JT Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Fonts The JT Fax 14400B Dual board gives the user the flexibility of 4 different fonts. These fonts are identified as font.0, font.1, font.2, and font.3. Font.0 is the default font and Fonts 0-3 are available as user defined fonts. The fonts are designed in two resolutions, low and high resolution. Low resolution is defined as an 18-bit by 16-row character cell. High resolution is defined by a 18-bit by 32-row character cell. All fonts are available in the JT FAX software toolkit under the files font.0, font.1, font.2, and font.3. Contact Hayes Customer Service, see Appendix I. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Mode There are two different modes for resolution, normal mode and compressed mode. In normal mode the character cell consists of 18 bits per character cell line. Normal mode is the default mode for the default font used by JT Fax. The JT Fax compressed mode consists of a character cell that is 13 bits-per-character line. Both modes support 80 and 132 columns. Below is a list of these fonts with their corresponding resolution. Font Name Resolution ----------------------------------------------------------- Low res faxfont.0 200x100 80 columns normal mode High res faxfont.1 200x200 132 columns normal mode Low res faxfont.2 200x100 80 columns compressed High res faxfont.3 200x200 132 columns compressed +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Font Modifications To modify these fonts, the programmer can execute the font generation program, fontcon.com. This program can be downloaded in the file faxfont.arc (contact Hayes Customer Service, see Appendix I). If the user wishes to create a custom font file without the use of the fontcon.com program, the fonts must be bit mapped as explained in the following paragraphs. The bit map is arranged in a "pixel line" format. The character must be converted into a bit-format byte aligned. Character tables start with the ASCII character for a space " " and end with an ASCII character for a "~". The character is assembled into a 4x16 byte matrix in low resolution and a 4x32 byte matrix for high resolution. All parts of the character cell must be represented. In lower case characters, the additional white space above the character must be included. For example, the lower case ASCII 'a' has several lines of white space above the 'a'. This must be included. Within each matrix cell, the font character is defined by 4 bytes per line by: low resolution = 18 bits < 22 bits unused > high resolution = 13 bits < 27 bits unused >. All unused bits are ignored and are set to a 0xff. For example, a '!' in low-resolution normal mode 4x16 80-column, with a bit set for white would be as follows: Row Bitmap Row Bitmap -------------------------------------------------------------------------------- 1 0xff, 0xff, 0xc0, 0xff (top space) 9 0xff, 0xf9, 0xc0, 0xff (char) 2 0xff, 0xf0, 0xc0, 0xff (char) 10 0xff, 0xff, 0xc0, 0xff (char) 3 0xff, 0xf0, 0xc0, 0xff (char) 11 0xff, 0xff, 0xc0, 0xff (char) 4 0xff, 0xf0, 0xc0, 0xff (char) 12 0xff, 0xf9, 0xc0, 0xff (char) 5 0xff, 0xf0, 0xc0, 0xff (char) 13 0xff, 0xff, 0xc0, 0xff (space) 6 0xff, 0xf0, 0xc0, 0xff (char) 14 0xff, 0xff, 0xc0, 0xff (space) 7 0xff, 0xf0, 0xc0, 0xff (char) 15 0xff, 0xff, 0xc0, 0xff (space) 8 0xff, 0xf9, 0xc0, 0xff (char) 16 0xff, 0xff, 0xc0, 0xff (space) The JT Fax font generation software offers the user the ability to create or modify the ASCII coded fonts used by the JT Fax products. The user will need to download FAXFONT.ARC and FONT.ARC from the HAYES BBS (see Appendix I). For development purposes, the programmer is advised to create a font sub- directory containing four sub-directories (one for each font), and copy the proper files into each sub-directory as follows: Directory Contents --------------------------------------------------------------- Font All directories below. Font 0 Low resolution normal 80 columns. Include FONT0.EXE, FONTSCRN, and FAXFONT.0. Font 1 High resolution normal 80 columns. Include FONT1.EXE, FONTSCRN, and FAXFONT.1. Font 2 Low resolution compressed 132 columns. Include FONT2.EXE, FONTSCRN, and FAXFONT.2. Font 3 High resolution compressed 132 columns. Include FONT3.EXE, FONTSCRN, and FAXFONT.3. To use the graphics editor, move to a font sub-directory, and type FONTX.EXE, where X is the font number to modify. The editor then appears, along with some instructions. EXAMPLE: C:/font/2 followed by: font2 This example illustrates the suggested sub-directory structure and the procedure for editing font2 (low resolution compressed). The FONTSCRN file is a graphic overlay for the font editor. When the "Which character to edit" prompt is displayed, you may enter a keyboard character. To enter a non-keyboard character, find its ASCII code, hold down the key and enter the ASCII code with the numeric keypad. To move about in the font field, use the cursor control keys. The instructions appearing on the screen guide you to edit a font. When the font is complete, enter to save it. The high resolution fonts allow editing the top and bottom half of each pixel in the font field. In the high resolution fonts, use T and B to paint or delete the Top or Bottom of a font element. As a font is modified, a FAXFONT.TMP file is created. FONTCON.COM is then converts the FAXFONT.TMP file into the format used by the JT FAX software. The syntax is: FONTCON FAXFONT.TMP FAXFONT.X The FAXFONT.X is the new file you created, and is now ready to be copied into your FAX directory for testing. EXAMPLE: c:\font\2> fontcon faxfont.tmp faxfont.2 The example converts the FAXFONT.TMP from sub-directory FONT2 and converts it to FAXFONT.2. Font generation may require several iterations of some character. This is normal, as fonts displayed on a CRT appear different than when received on a Fax machine. Note: Only one soft font can be downloaded. This is the font used by the Fax. Only one soft font at any given time can be downloaded and used. Soft Font cannot be used with the OEM_CODE command. ************************************************************************** JT Fax Format The JT Fax file format is based on a modified Huffman coding used in Group 3 facsimile preceded by an eight byte header. The Huffman coding schema is in Appendix A.) The header format is as follows: Offset Explanation --------------------------------------------------------------- 0 A zero byte 1 Either 0 or 40H. If the 40H bit is set, then the file is a high resolution (200x200) file. 2 reserved 3 reserved 4 reserved 5 reserved 6 reserved 7 reserved The Huffman data format is a data compression method based on run length encoding. One hundred and twenty-eight run lengths (64 white and 64 black), thirteen make-up codes, and an end-of-line (EOL) are defined by the ITU-T. These codes are available in Appendix A. The JT Fax only supports files of 1728 pixels per line, the only required format for a Group 3 fax machine. The EOL command is used to end every line in a fax-format file. It consists of 11 zero bits and a one bit. Additional zero bits, or fill bits, can be inserted prior to the EOL command. Although some JT Fax files use fill bits so that each line of fax data begins on a byte boundary, inclusion of fill bits is not necessary for any JT Fax family product. The JT Fax file is organized as follows: Eight byte header EOL Huffman compressed line EOL Huffman compressed line EOL . . . Huffman compressed line EOL Huffman compressed lines are generated using the tables in Appendix A. Huffman compression assumes that every line begins with a white run length, alternates to a black, back to white, up to an EOL. If a run length is greater than 63, then a make-up code is used. A make-up code is always followed by a run length of the same color, even if the length is zero. The Huffman codes are sent left-bit first (as seen in the table), but must be assembled so that the low-order bit in each byte is the first to send. The following example demonstrates this process: Assume the input line of data is: 30 white, 10 black, 130 white, 192 black, 1366 white From the table in Appendix A: 30 white = 00000011 10 black = 0000100 130 white = 128 white = 10010 (make up-code) + 2 white = 0111 192 black = 192 black = 010111(make-up code) + 0 black = 0000110111 1366 white = 1344 white = 011011010 (make-up code) + 22 white = 0000011 EOL = 000000000001 Put the bits in a stream: 00000011000010010010011101011100001101110110110100000011 000000000001 Break them out, eight bits at a time: 00000011-00001001-00100111-01011100-00110111-01101101- 00000011-00000000-0001 Reverse the bit-order: 11000000-10010000-11100100-00111010-11101100-10110110- 11000000-00000000-xxxx1000 The xxxx could be the first four bits from the next Huffman stream of data, or four additional 0s could be inserted on the other side of the 1, making the last byte 10000000. The final hex code for this line is: C0 90 E4 3A EC B6 C0 00 80 ========================================================================== Appendix A ITU-T T.4 Huffman Encoding This appendix defines the T.4 Huffman encoding used in JT Fax. Run Length White Code Black Code ------------------------------------------------ 0000 00110101 0000110111 0001 000111 010 0002 0111 11 0003 1000 10 0004 1011 011 0005 1100 0011 0006 1110 0010 0007 1111 00011 0008 10011 000101 0009 10100 000100 0010 00111 0000100 0011 01000 0000101 0012 001000 0000111 0013 000011 00000100 0014 110100 00000111 0015 110101 000011000 0016 101010 0000010111 0017 101011 0000011000 0018 0100111 0000001000 0019 0001100 00001100111 0020 0001000 00001101000 0021 0010111 00001101100 0022 0000011 00000110111 0023 0000100 00000101000 0024 0101000 00000010111 0025 0101011 00000011000 0026 0010011 000011001010 0027 0100100 000011001011 0028 0011000 000011001100 0029 00000010 000011001101 0030 00000011 000001101000 0031 00011010 000001101001 0032 00011011 000001101010 0033 00010010 000001101011 0034 00010011 000011010010 0035 00010100 000011010011 0036 00010101 000011010100 0037 00010110 000011010101 0038 00010111 000011010110 0039 00101000 000011010111 0040 00101001 000001101100 0041 00101010 000001101101 0042 00101011 000011011010 0043 00101100 000011011011 0044 00101101 000001010100 0045 00000100 000001010101 0046 00000101 000001010110 0047 00001010 000001010111 0048 00001011 000001100100 0049 01010010 000001100101 0050 01010011 000001010010 0051 01010100 000001010011 0052 01010101 000000100100 0053 00100100 000000110111 0054 00100101 000000111000 0055 01011000 000000100111 0056 01011001 000000101000 0057 01011010 000001011000 0058 01011011 000001011001 0059 01001010 000000101011 0060 01001011 000000101100 0061 00110010 000001011010 0062 00110011 000001100110 0063 001101000 00001100111 0064 11011 0000001111 0128 10010 000011001000 0192 010111 000011001001 0256 0110111 000001011011 0320 00110110 000000110011 0384 00110111 000000110100 0448 01100100 000000110101 0512 01100101 000000110110 0576 01101000 000001101101 0640 01100111 000000100100 0704 011001100 000000100101 0768 011001101 000000100110 0832 011010010 000000100111 0896 011010011 000000111000 0960 011010100 000000111001 1024 011010101 000000111010 1088 011010110 000000111011 1152 011010111 000000111010 1216 011011000 000000111011 1280 011011001 000000101000 1344 011011010 000000101001 1408 011011011 000000101010 1472 010011000 000000101011 1536 010011001 000000101100 1600 010011010 000000101101 1664 011000 000000110010 1728 010011011 000000110011 EOL 000000000001 000000000001 ========================================================================== Appendix B Return Codes The following paragraphs describe the correct time to read the RET_CODE field of the JT Fax API window. When the PC is finished receiving data from the JT Fax board, then the JT Fax issues an EOT in the Command field. The JT Fax board sends a BOARD_ACK in the Command field when the transmission is complete. At this time the PC should read the RET_CODE field of the JT Fax API window. If the command field changes to an error, the RET_CODE is valid. Some of the errors are fatal and some are operational. Fatal errors halt execution with an error flag while operational errors are less severe and will allow the Fax operation to continue. Operational errors are read at the end of a receive or transmit. Once an error occurs, Buffer area [0] can be checked for additional return code information. If available, the byte will be non-zero. Also, the status field can be checked to determine the state of the JT Fax. The following paragraphs describe the JT Fax Return Codes. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 00 MNEMONIC: SUCCESSFUL_TRANSMIT DESCRIPTION: A successful transmit occurred with no errors. This is a JT Fax compatibility code. RECOMMENDED ACTION: Fax was good. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 01 MNEMONIC: NO_DIALTONE DESCRIPTION: A dial command was issued with either a 'W' dial modifier or a wait for dialtone in byte 0 of the dial string. Fatal error. RECOMMENDED ACTION: Check cable connections and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 02 MNEMONIC: NO_CARRIER DESCRIPTION: A complete connection was not established. A NO_CARRIER error appears after the dial and before the Phase A completion. JT Fax compatibility. Fatal error. RECOMMENDED ACTION: Check phone number and retry call. Try enabling enhanced mode to determine the exact cause of error. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 03 MNEMONIC: BUSY DESCRIPTION: The called phone number was busy or a circuit was busy. Fatal error. RECOMMENDED ACTION: Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 04 MNEMONIC: PC_COMM_ERROR DESCRIPTION: Invalid response or command while in command state. Fatal error. RECOMMENDED ACTION: Check Host for problems. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 07 MNEMONIC: CLIP DESCRIPTION: An ASCII file was converted to T.4 data and a line was longer than 216 bytes (including spaces and tabs). This error only occurs during a FILETYPE - ASCII conversion during transmit. The error does not cause an abort to the transmit. Operational error. RECOMMENDED ACTION: Continue with fax or terminate call with a SOFT_RESET. Modify file before retransmitting. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 10 MNEMONIC: DIALING_ERROR DESCRIPTION: A dial command was issued and one of the characters in the dial string was invalid. Fatal error. RECOMMENDED ACTION: Check dial string and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 12 MNEMONIC: FONT_TOO_LARGE DESCRIPTION: The soft font file was too large for the soft font area. This error could also apply to the OEM code load. Fatal error. RECOMMENDED ACTION: Shorten soft font and retry. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 19 MNEMONIC: TRANSMIT_PAGE_ERROR DESCRIPTION: Transmit page was not received correctly. Operational error. RECOMMENDED ACTION: Retry call. Check remote fax machine and/or telephone line.. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 20 MNEMONIC: PHASE_A_ERROR DESCRIPTION: The transmitted Fax was not received correctly. Operational error RECOMMENDED ACTION: Retry call. Call Hayes Customer Service. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 21 MNEMONIC: NO_CNG_ERROR DESCRIPTION: No 1100 Hz CNG tone was detected from the Caller. If CNG detect is enabled this informs the user that a CNG was not detected. If CNG detect is not enabled then this error will not occur. Operational error. RECOMMENDED ACTION: Hang up the Fax call and use a voice connection. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 30 MNEMONIC: PHASE_C_ERROR DESCRIPTION: This a general error for Phase C. Operational error. RECOMMENDED ACTION: Retry Call. Call Hayes Customer Support. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 32 MNEMONIC: MAX_FRAME_ERR DESCRIPTION: The FAX handshake frame was too large for the JT Fax buffers. This is usually caused by a noisy line. Fatal error. RECOMMENDED ACTION: Check line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 35 MNEMONIC: LONG_LINE_ERROR DESCRIPTION: An error occurred in the reception of data. A line was received and decoded as being to long. This only occurs if the line is noisy. RECOMMENDED ACTION: Check phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 36 MNEMONIC: PERCENTAGE_ERROR DESCRIPTION: Percentage of data errors on receive versus the amount of correctly received data. Operational error. RECOMMENDED ACTION: Check line for connection or noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 40 MNEMONIC: PHASE_D_ERROR DESCRIPTION: A response from the remote machine was not received after transmit during the required time. Operational error. RECOMMENDED ACTION: Check line for connection or noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 60 MNEMONIC: DTMF_ERROR DESCRIPTION: A valid DTMF signal was not received. Operational error. RECOMMENDED ACTION: Check connection. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 61 MNEMONIC: NO_DTMF_TIMEOUT_ERROR DESCRIPTION: A manual DTMF command was issued. The activity timer expired with no DTMF. Operational error. RECOMMENDED ACTION: Check connection and line noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 62 MNEMONIC: VOICE_ERROR DESCRIPTION: An error occurred during the operation of a voice command. Fatal error. RECOMMENDED ACTION: Retry voice operation. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 122 MNEMONIC: HDLC_MIN_SIZE_ERROR DESCRIPTION: The HDLC frame of the T.30 handshake was shorter than expected. Invalid frame was received. Fatal error. RECOMMENDED ACTION: Check remote Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 123 MNEMONIC: HDLC_CRC_ERROR DESCRIPTION: The HDLC frame of the T.30 handshake did not have a good CRC. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 124 MNEMONIC: NEGOTIATING_TRAIN_DCN_ERROR DESCRIPTION: A DCN was received while the Fax was negotiating speed. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote Fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 125 MNEMONIC: HDLC_FRAME_TIMOUT_ERROR DESCRIPTION: A time-out occurred while waiting for the HDLC T.30 handshake. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote Fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 126 MNEMONIC: NO_DCS_REC DESCRIPTION: A DCS was not received from the caller. Caused by equipment malfunction at remote site. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 128 MNEMONIC: BAD_DIS_REC DESCRIPTION: A DIS received from the callee was in error. Possible remote equipment problems. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 129 MNEMONIC: BAD_TRAINING DESCRIPTION: An error occurred during the training phase of the call. Line quality does not support speeds available. Fatal error. RECOMMENDED ACTION: Check remote fax, phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 130 MNEMONIC: PHASE_B_ERROR DESCRIPTION: An error occurred during the negotiation phase of the call. This could be a failure to negotiate parameters. Fatal error. RECOMMENDED ACTION: Check type of remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 131 MNEMONIC: BAD_MPS_RESPONSE DESCRIPTION: In Phase D the negotiation for Multiple pages was in error. Operational error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 132 MNEMONIC: BAD_MCF_RESPONSE DESCRIPTION: A message confirmation after training did not occur. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 133 MNEMONIC: BAD_DCS_RESPONSE DESCRIPTION: A bad response from the DCS message caused this error. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 134 MNEMONIC: PHASE_D_ERROR DESCRIPTION: An error occurred during the operation of a voice command. Fatal error. RECOMMENDED ACTION: Check phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 135 MNEMONIC: NO_PC_ACK DESCRIPTION: A PC_ACK was not received in response to the LOAD_DATA_COMMAND. A 5 sec time-out error to the host. Operational error. RECOMMENDED ACTION: Fax may have errors. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 136 MNEMONIC: NO_DATA_RECEIVED DESCRIPTION: No data was received from the remote fax. Caused by a line drop or the remote fax abnormally terminated the call. RECOMMENDED ACTION: Check phone line. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 137 MNEMONIC: PAGE_ERROR DESCRIPTION: Page data was received in error from the remote fax. RECOMMENDED ACTION: Check phone line. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 138 MNEMONIC: SUCCESSFUL_RECEIVE DESCRIPTION: Fax was received successfully. RECOMMENDED ACTION: Ready for next fax transaction. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 243 MNEMONIC: ROCK_ERROR DESCRIPTION: This error indicates that the Rockwell chip is not responding. Operational error. RECOMMENDED ACTION: Turn off power and reinstall the board. If this does not correct the problem, contact Hayes Customer Service. ========================================================================== Appendix C Status Codes Status codes do not require a response from the Host. The code will reflect the state of the JT Fax 14400B Dual. It is not necessary to issue a PC_ACK command when receiving the status notification. However, the IDLE command in the Status Code field is recommended because it incorporates a more fault-tolerant coding algorithm. Status codes may be used to provide additional information during a fax call procedure. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 01 MNEMONIC: RING DESCRIPTION: A ring was detected during the dialing of number. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 02 MNEMONIC: SUBSCRIBER_INFO DESCRIPTION: CSI/TSI info is available in the buffer area. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 0E MNEMONIC: PHASE_E_START DESCRIPTION: Start of T.30 Phase E. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 10 MNEMONIC: PHASE_A_START DESCRIPTION: Phase A begins call establishment. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 11 MNEMONIC: PHASE_B_START DESCRIPTION: Phase B starts the initial negotiation of speed and format. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 12 MNEMONIC: PHASE_C_START DESCRIPTION: Start of Phase C for fax transmission. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 13 MNEMONIC: PHASE_D_START DESCRIPTION: Start of Phase D and post message handling. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 20 MNEMONIC: NEGOTIATING_SPEED DESCRIPTION: Speed negotiation is occurring during Phase B. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 21 MNEMONIC: CONNECT DESCRIPTION: Indicates that all handshaking is complete and fax data will be transmitted. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 22 MNEMONIC: VOICE_MODE DESCRIPTION: Notification of automatic voice mode is entered. ========================================================================== Appendix D T.30 Phase Descriptions Fax communication occurs in phases. As defined by the ITU-T the phases are: ---------------------------------------- Phase A Call Establishment Phase B Pre-message Procedure Phase C In-message Procedure Phase D Post Message Procedure Phase E Call Release The following sections describe the phases as they relate to the JT Fax 14400B Dual in the default configuration. ************************************************************************** Phase A The calling fax (caller) goes "off hook" and listens for dialtone. After dialtone has been detected, dialing the phone number starts. The dialing call progress includes the detection of the ring and busy signals. In addition to the call progress, the T.30 1100-Hz CNG tone is transmitted with a cycle time of 0.5 seconds on and 3 seconds off. Transmission of the CNG cycle continues until the receiving fax (callee) transmits a T.30 2100 Hz CED. Once the CED is detected, the caller waits for a silent period. The silent period terminates Phase A for the caller. The callee detects a "ring" signal and goes to off-hook. 1.8 seconds after going "off hook", the callee transmits the 2100-Hz CED for 2.8 seconds. The ending of the CED terminates Phase A for the callee. ************************************************************************** Phase B After a silent period of 75 milliseconds the receiver transmits a CSI, NSF and a DIS frame. The DIS frame contains the negotiating parameters. Once the DIS is transmitted, the receiver looks for a response from the caller. During a 3.5 second time-out period, the receiver receives a DCS frame from the caller. Once a mode has been selected from the DCS frame, the caller transmits a training sequence 75 milliseconds later. If the training sequence is within error parameters, the receiver transmits a TCF. The TCF marks the end of Phase B for the receiver. The caller detects a silent period and starts the pre-message handshake. The handshake begins with the reception of the DIS frame. After the reception of the DIS frame, the TSI and DCS frames are transmitted. The caller sends a training signal for 75 milliseconds after sending the DCS frame. The training signal has a duration of 1.5 seconds. If the signal was received without errors by the receiver, a CFR frame is received. The reception of the CFR frame marks the end of Phase B for the caller. ************************************************************************** Phase C The caller transmits the Fax message 75 milliseconds after the CFR. The format of the message is T.4 Huffman encoded data. A RTC sequence will be sent at the end of the page to signal the receiver to transition into Phase D. The receiver receives the Fax message and examines the T.4 codes for errors. A "TIC" mark will be printed in the left most column to signify a line error. When a RTC is received, the receiver transitions into Phase D. ************************************************************************** Phase D The caller transmits one of the following: EOM MPS to start the procedure to re-enter Phase C EOP frame to proceed to Phase E. After receipt of a MCF from the receiver, the caller goes to either Phase E or re-enters Phase C. To re-enter Phase C, the caller transmits another train sequence. The caller looks for a confirmation of the retrain in the form of a RTP frame. Once an RTP is received, the caller re-enters Phase C. Exiting to Phase E requires only the reception of a MCF. The receiver waits for a EOM, MPS or EOP frame. Upon receiving a MPS or EOM frame, the receiver transmits a MCF. After transmitting the MCF frame, the receiver looks for a training signal. If the signal is within error limits, the receiver transmits a CFR. Transmitting the CFR marks the end of Phase D and the receiver re-enters Phase C. If an EOP frame was received, the receiver transmits a MCF and proceeds to Phase E. ************************************************************************** Phase E The caller sends a DCN frame to the receiver and disconnects the telephone line. The receiver waits for the reception of a DCN frame. After receiving a DCN, the receiver disconnects the telephone line. ========================================================================== Appendix E Buffer Area Layout The BUFFER_AREA is a multipurpose area used in several commands. The following chart defines the buffer area during different stages of a Fax operation. Operation Layout -------------------------------------------------------------------------------- XMIT - TelephoneNumber BYTE 0 - 60 used for phone number. XMIT - Header BYTE 0 - 19 used for TSI/CSI information (optional if TSI/CSI command used) BYTE 55 used for page number; followed by space BYTE 56-58 padded with spaces. All other operations require the following: BYTE 0 location WORD 0 - 1 location in INTEL Format LONG 0 - 3 location in INTEL Format The buffer area is also used to transmit default CSI/TSI information. A zero in buffer [0] prohibits the buffer area CSI/TSI data from being transmitted. ========================================================================== Appendix F OEM Code Guidelines JT Fax provides a method to off-load code from the Server and run the code in the JT Fax while JT Fax is idle. Use the following guidelines to offload code: 1. The code must be in 8088 assembly language. 2. Code segment must be 0H. 3. Stack frame and registers must be preserved. 4. Code size including data must not be greater than 28 KB. 5. The starting address for code must be 0:8800H. 6. Soft fonts are not available while using OEM code. 7. Upon entry into OEM code the following registers contain values es: Points to the JT Fax code segment ax: Points to the OEM entry point for executing JT Fax commands bx: Points to timer service routine for user timers cx: Points to the OEM exit point ss: Points to Stack Segment sp: Points to Stack pointer. 8. Code must be in binary form. 9. Timer interrupts continue to run. ========================================================================== Appendix G Command Codes The following chart presents the JT Fax commands in numerical order by command code. Code Command --------------------------------------------- 00H IDLE_STATUS 01H XMIT_COMMAND 02H BOARD_ACK_STATUS 03H LOAD_DATA_COMMAND 04H LOAD_FONT_COMMAND 05H PC_ACK 06H ERRFLAG 08H EOPFLAG 0FH EOTFLAG 10H MANUAL_REC_COMMAND 10H RECVINIT 20H SET_CARRIER_COMMAND 21H STATUS_COMMAND 22H REC_PCX_ON_COMMAND 23H REC_PCX_OFF_COMMAND 24H ON_HOOK_COMMAND 25H OFF_HOOK_COMMAND 26H FAX_MODE_COMMAND 27H MODEM_MODE_COMMAND 28H DTMF_ON_COMMAND 29H DTMF_OFF_COMMAND 2AH DTMF_ON_TIME_COMMAND 2BH DTMF_OFF_TIME_COMMAND 2CH DTMF_DIAL_COMMAND 2DH PULSE_DIAL_COMMAND 2EH NO_BUSY_COMMAND 2FH BUSY_COMMAND 30H HARDWARE_RESET_COMMAND 31H SOFTWARE_RESET_COMMAND 32H PULSE_INTER_COMMAND 33H RESET_DATA_PUMP 34H CNG_ON_COMMAND 35H CNG_OFF_COMMAND 36H CED_ON_COMMAND 37H CED_OFF_COMMAND 3AH PULSE_BREAK_COMMAND 3BH PULSE_MAKE_COMMAND 3EH SPEAKER_ON_COMMAND 3FH SPEAKER_OFF_COMMAND 4EH EXTEND_STATUS_ON _COMMAND 4FH EXTEND_STATUS_OFF_COMMAND 50H FAX_144_MODE_ON_COMMAND 51H FAX_144_MODE_OFF_COMMAND 52H ENHANCED_MODE_ON _COMMAND 53H ENHANCED_MODE_OFF_COMMAND 54H SET_USER_TSI_COMMAND 55H SET_USER_CSI_COMMAND 5FH SETUP_VOICE_COMMAND 60H CNG_DETECT_ON_COMMAND 61H CNG_DETECT_OFF_COMMAND 62H PLAY_START_COMMAND 63H PLAY_END_COMMAND 64H REC_START_COMMAND 65H REC_STOP_COMMAND 66H EOVFLAG 67H GAIN_UP_COMMAND 68H GAIN_DOWN_COMMAND 69H SET_GAIN_COMMAND 6AH SET_SAMPLE_RATE_COMMAND 6BH SET_SLEW_RATE_COMMAND 6CH SILENCE_DETECTED_STATUS 6FH SET_ACT_TIMER_COMMAND 70H DTMF_DETECT_STATUS 71H RETURN_TO_DATA_COMMAND 72H RETURN_TO_COMMAND 73H DTMF_DETECT_ON_COMMAND 74H DTMF_DETECT_OFF_COMMAND 75H GET_DTMF_COMMAND 76H EODFLAG 77H ONLINE_VOICE_REC_ON_COMMAND 78H ONLINE_VOICE_REC_OFF_COMMAND 79H OEM_CODE_COMMAND 7AH OEM_LOAD_COMMAND 0F0H GOOD_INIT 0F1H BAD_RAM 0F2H BAD_ROM 0FFH BOARD_SYNC_COMMAND ========================================================================== Appendix H References CCITT Blue Book, Volume VII - Facscicle VII.3, "Terminal Equipment and Protocols for Telematic Services", Recommendations T.0-T.63, IXth Plenary Assembly, Melbourne, November 14-25,1988. Rockwell R144EFX bps MONOFAX Modem Designers Guide, Document No. 29800N46, November 1990. FAX, "Digital Facsimile Technology and Applications", McConnell, Bodson and Schaphorst, Second Edition, Artech House, Norwood, MA, 1992. ========================================================================== Appendix I Hayes Customer Service To obtain Warranty/Guarantee Service, call or write to the appropriate Hayes Customer Service location listed below for a return authorization number, and then return the product to that location along with (a) the return authorization number, (b) proof of date of purchase, and (c) your mailing address and telephone number, postage prepaid. Please note that if the product is returned without proof of purchase or after the expiration of the warranty/guarantee coverage period, Hayes will, at its option, repair or replace the product and charge you the then effective Hayes price for out-of-warranty/guarantee service of the product, unless Hayes has discontinued the manufacture or distribution of the product because of technical obsolescence. Americas Region Hayes Microcomputer Products, Inc. Attention: Customer Service P.O. Box 105203 Atlanta, Georgia 30348-5203 Telephone: (404) 441-1617 Telefax: (404) 449-0087 Telex: 703500 HAYES USA Online with Hayes BBS: (404) HI-MODEM or (800) US-HAYES and Hayes forums on CompuServe (GO HAYES) and GEnie information services. Note: If the carrier requires a street address, direct returns to the following address: Hayes Microcomputer Products, Inc. Attention: Customer Service 5953 Peachtree Industrial Blvd. Norcross, Georgia 30092 Asia Region Hayes Microcomputer Products, Inc. 39/F, Unit B, Manulife Tower 169 Electric Road, North Point, Hong Kong Telephone + 852 887-1037, Telefax + 852 887-7548 Telex: 69381 HAYES HX Online with Hayes BBS: + 852 887-7590 Note: This version of the "JT Fax 14400B Dual Application Developer's Guide" is a special version edited for bulletin-board downloading. As a plain ASCII character file, it therefore cannot contain any of the graphic elements provided in the printed version. The following graphic characters are used to denote the start of Chapters, 1st Level Headings, 2nd Level Headings, and Table Headings: Chapter Headings are preceded by: ========================================================================== 1st Level Headings are preceded by: ************************************************************************** 2nd Level Headings are preceded by: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Table Headings are separated from table listings by: ----------------------------------------------------------------------------- ============================================================================= CHANGE RECORD: Original ========================================================================== Chapter 1 Introduction The Hayes JT Fax 14400B Dual is a board level Fax product developed specially for "high end" server environments where throughput is a major concern. The JT Fax 14400B Dual contains two independent 14.4 KBPS Group 3-compatible fax modems, providing an interface directly to the PC ISA bus. Both fax modems interface to the host software at the speed of the ISA bus specification (i.e., 4-8 MHz). Data transfer between JT Fax and the host software can occur at the MBPS rate. In comparison, most serial based facsimile units can only transfer data in the KBPS range. Considering speed alone, the JT Fax 14400B Dual is ideal for server applications. Additional functionality is added to decrease the burden on the application software and thus the host computer. These features include: automatic T.4 encoding and T.30 handshakes receive Fax real time T.4 to PCX type 3 conversion Fax speeds of 2400 to 14400 BPS digital voice transmit and receive record/playback DTMF transmit and detection. The JT Fax 14400B Dual is designed with a simple high-speed interface. The interface does not require that the application developer know T.4 encoding or T.30 handshake protocols for ITU-T (formerly CCITT) Group 3 facsimiles. The JT Fax 14400B Dual is capable of performing all the encoding and decoding required to complete a fax call. However, if the application developer is comfortable with the encoding and decoding of the T.4 formatted data, the JT Fax 14400B Dual is versatile enough to handle this encoded data. This Application Developers Guide describes the programming procedure that comprises the JT Fax 14400B Dual Application Programming Interface (API). A list of the functions is provided along with the necessary procedure to implement the functions. Throughout, the guide presents example routines using the elements of the functions to assist the programmer with the application. Included in Appendix G is a quick reference guide of the Command Codes indexed by alphabetical listings and by numeric listing. Also available with the JT Fax 14400B Dual is the developers toolkit, which contains working Fax software with source code. Familiarity with "C" and assembly language is required to use the toolkit. Contact Hayes Customer Service for information about obtaining the JT Fax Toolkit. Distinction: JT Fax 14400B Dual is the product described in this Guide. JT Fax is a standard technology in the PC fax industry. The term fax refers to the facsimile technology. ************************************************************************** Manual Organization This Application Developer's Guide is arranged as follows: This Application/Developers Guide is arranged as follows: Chapter 1 Introduction describes the product features and the contents of the remainder of this Guide. Chapter 2 Theory of Operation briefly presents the hardware and firmware used to develop the JT Fax 14400B Dual. Chapter 3 JT Fax Toolbox describes the concepts, constructs, and structures necessary to develop API software for the JT Fax 14400B Dual. Chapter 4 Voice and DTMF Detect describes the voice and DTMF operating modes available with the JT Fax 14400B Dual. Chapter 5 Command Reference presents an alphabetical listing of all command codes available in the JT Fax API. Chapter 6 Shared Memory Interface Description introduces functions, status codes, return codes and data that is passed through the Shared Memory Interface. Chapter 7 File Formats describes the JT Fax file conversion formats. Appendix A ITU-T T.4 Huffman Encoding describes the T.4 Huffman Encoding process used by JT Fax. Appendix B Return Codes describes the timing JT Fax requires to read a return code. The appendix also includes a summary of the JT Fax Return Codes. Appendix C Status Codes provides a summary of the JT Fax Status Codes. Appendix D T.30 Phase Descriptions describes fax call processing techniques used by JT Fax. Appendix E Buffer Area Layout describes the Buffer Area used by several of the JT Fax commands. Appendix F OEM Code Guidelines defines the methodology JT Fax employs to offload code from a fax server. Appendix G Command Codes provides a complete listing of the JT Fax Command Codes in numerical order. Appendix H References lists references used in the development of the product. Glossary Glossary defines terms used in this guide. ************************************************************************** Definitions The following terms are used in this documentation: Term Definition -------------------------------------------------------------------- Host The Program written to interface with the JT Fax JT Fax, Fax The JT Fax 14400B Dual board API Application Programming Interface API Block Shared memory window BPS Bits per second WORD 2 bytes LONG 4 bytes Additional definitions are listed in the Glossary. ========================================================================== Chapter 2 Theory of Operation The JT Fax 14400B Dual board includes two, 14400-baud, Group 3 facsimile modems with voice and DTMF capabilities. The facsimile modems are divided into two independent and separate parts, Fax A and Fax B. Each Fax has an independent processor, PC address interface, data pump and telephone line interface (TELCO) section. Both modems share a single PC bus interface and a speaker connection. The speaker volume is controlled by a potentiometer on the back of the unit. Speaker on/off controls are available for both FAX A and B through functions. Fax A has the additional feature of a microphone jack. The microphone jack is provided for voice messaging applications. ************************************************************************** Shared Memory Interface - API Block The JT Fax interfaces to the PC through a shared memory interface. Access to the shared memory API Block is accomplished by two steps. Step 1: Set the memory base address set with the DIP switch (see the Hayes JT Fax 14400B Dual Installation Guide) on the JT Fax 14400B Dual board. Step 2: Scan the memory between addresses 640k and 1M for the keyword "ASHER". Once the keyword is found, the keyword address marks the beginning memory address of the JT Fax API Block. The memory address is "blocked out" in a 4 Kb section. The starting address is Fax A. Fax A utilizes the first 2 Kb for an API Block. The adjacent 2K of memory is allocated to Fax B's API Block. The shared memory interface requires no interrupt vectors to the PC, no serial port, and no drivers. The application communicates with the JT Fax shared memory using a polled interface method. Polling activation and frequency is host dependent and is determined by the application. The handshake required to communicate with JT Fax 14400B Dual utilizes the JT Fax protocol structure. The JT Fax protocol is an ACK-ACK type protocol. All data and commands use this protocol. Chapter 5 provides protocol examples for each command. The API Block contains memory windows for command protocol, control, configuration, and data. The Shared Memory Interface (see Chapter 6) details the API block. The API block's most important asset is the 1960 byte buffer for transmitting and receiving fax data. This allows additional time for the host to perform other activities. In addition, the JT Fax has a 9K buffer for transmitting and receiving Fax data. The transmit and receive capability of the JT Fax 14400B Dual board offers two modes of operation for the host: Manual and Automatic. Manual requires the host to start the initial call/answer procedure by issuing commands that force the Fax into the "off-hook" condition. The remainder of the call/answer is automatic. In the Automatic procedure, the call/answer is handled by issuing the appropriate transmit and receive commands. The "off-hook" condition is controlled by the Fax. ************************************************************************** Transmitting Transmitting with the JT Fax 14400B Dual is straight-forward since the modem automatically executes the T.4 and T.30 handshake. The host is only responsible for the phone number, data to be transmitted, and the simple handshake protocol to JT Fax and the host. The following is a high level Program Design Language (PDL) example demonstrating a transmit. send SYNC_COMMAND (only after power up ) wait for response GOOD_INIT write to configure API block write phone number in BUFFER_AREA send XMIT_COMMAND wait for response BOARD_ACK_STATUS write header information into BUFFER_AREA send PC_ACK wait for response LOAD_DATA_COMMAND write data to DATA_AREA send PC_ACK continue to write data till END_OF_FILE is reached send EOT_FLAG wait for response BOARD_ACK_STATUS check ret_code TRANSMIT_SUCCESSFUL send PC_ACK A C programming language example of the transmit procedure can be found in the JT Fax Toolkit found on the Online with Hayes BBS in the file JT_TX.C. The JT Fax 14400B Dual can have a manual dial if required. The host is required to dial the telephone number and place an "M" in the first byte of the automatic dial string. The "M" tells the JT Fax not to dial a telephone number. The JT Fax continues with the standard call progress. The manual handshake is identical to the automatic handshake. ***************************************************************************** Receiving The receive procedure for JT Fax 14400B Dual requires the host to monitor the Fax for an indication of a call. The host sets the number of rings to allow before answering in the RING_COUNT field of the API block. Answering the call and T.30 handshakes are automatic. Once the RING_COUNT is matched, the host receives a RECVINIT in the COMMAND field. The RECVINIT is the notification that an incoming call is being answered. After the receiver initializes, the Fax issues a LOAD_DATA_COMMAND. The host should retrieve the data and respond with a PC_ACK. The same handshake continues until the last byte of data for the page or a transmission. To end transmission, the Fax issues an EOT command to the host. The EOT command concludes the handshake for the receive. The following is a PDL example demonstrating a fax receive: send SYNC_COMMAND ( only after power up ) wait for response RECVINIT send PC_ACK wait for response LOAD_DATA_COMMAND retrieve data from DATA_AREA send PC_ACK continue procedural handshake until response EOT_FLAG retrieve data from DATA_AREA send PC_ACK wait for response BOARD_ACK_STATUS check RET_CODE SUCCESSFUL_RECEIVE send PC_ACK A C programming language example of the receive procedure can be found in the JT Fax Toolkit found on the Online with Hayes BBS under the file JT_RX.C. The manual receive allows the host to determine when and if the call will be answered. Rings are detected by an outside source or by the extended status code "RING". When the required number of rings is reached, the host issues the MANUAL_RECEIVE_COMMAND. Note: To disable automatic detection, it is required to set RING_COUNT to 0FH. The remaining receive handshake procedure is identical to the automatic answer mode. ========================================================================== Chapter 3 JT Fax Toolbox This section establishes the concepts, constructs, and structures necessary to develop API software. The items in capital letters are the specific functions whose corresponding command values are found in the JT Fax 14400B command set in Chapter 5. The JT Fax 14400B Dual uses two contiguous memory blocks, each of which is 2K bytes long. The API Blocks, functions, return codes and status codes are discussed in separate sections of this Guide. In those Chapters, individual items are in alphabetical order for convenience. In the following sections, the items are grouped by function to clarify what functions are available. ************************************************************************** API Block - Shared Memory The API entry point for the JT Fax 14400B is the user selectable shared memory window. For backward compatibility, most of the elements of this structure are identical to the JT Fax 9600B. The only changes implemented to this structure are related to the new features of the JT Fax 14400B Dual. The changes are in the field previously defined as RESERVED and in one field not used in 9600B (RESET_PC). The new fields are STATUS_CODE, RCV_FILE_TYPE and RCV_LINES. The following chart describes the available fields: Offset Length Name Usage/Description ----------------------------------------------------------------------- 0000H-0005H ID Location of board address 0005H-0001H COMMAND Commands and Status 0006H-0001H RING_COUNT Ring to answer on 0007H-0001H CALL_MODE Transmit / Receive 0008H-0001H FILE_TYPE ASCII, PCX, JT Fax 0009H-0001H XMIT_FONT Resolution, Font number 000AH-0001H MIN_PAGE Force 11 inch page flag 000BH-003DH BUFFER_AREA Phone numbers & headers 0048H-0002H SECONDS Length of connection 004AH-0001H SPEAKER On, off, on till connect 004BH-0001H RET_CODE Completion code 004CH-0002H PAGES Number of pages sent 004EH-0002H DATA_LEN Length of valid data 0050H-0001H BAUD_RATE 2400, 4800, 7200, 9600, 12000, 14400 baud 0051H-0001H RESET_BOARD Reset the board 0052H-0001H STATUS_CODE Extended status 0053H-0001H LINE_COUNT Number of lines transmitted 0054H-0001H RCV_FILE_TYPE Receive file type 0055H-0002H RCV_LINE Lines per page received 0057H-0001H RESERVED Not used at this time 0058H-07A8H DATA_AREA Used for file data Note: H indicates hexadecimal code. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 9600 Compatibility For backward compatibility, the API set published with the JT Fax 9600B has been fully implemented. These functions use the Command field and are provided here for reference. Status Description ------------------------------------------------------------------ EOTFLAG End of transmission EOP End of page INIT Initialize the board LOAD_DATA_COMMAND Begin transmit of Fax LOAD_FONT_COMMAND Load soft font RECVINIT Begin reception of Fax XMIT_COMMAND No transmission in progress The JT Fax 9600B also included some status and PC handshake codes in the Command field. These are fully implemented for backward compatibility. The codes are provided here for reference. Command Description ------------------------------------------------------------------------------ BAD_RAM RAM test failed BAD_ROM ROM test failed BOARD_ACK_STATUS Board returns when function complete BOARD_SYNC_COMMAND Transition from initialization to command ERROR An error has occurred GOOD_INIT Board passed self test IDLE_STATUS No transmission in progress PC_ACK PC returns when function is complete +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 14400B Facsimile API The JT Fax 14400B API set is an enhanced version of the 9600B API set. All of the 9600B functions are supported. The following chart lists the facsimile API commands supported: Command Description ------------------------------------------------------------------- EOTFLAG End of transmission EOP_FLAG End of page BOARD_SYNC_COMMAND Initializes the board LOAD_DATA_COMMAND Begin transmit of Fax LOAD_FONT_COMMAND Load soft font RECVINIT Begin reception of Fax XMIT_COMMAND No transmission in progress +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 14400B Configuration API The JT Fax 14400B Dual Configuration functions were not available in the JT Fax 9600B command set. These configuration functions allow the host to customize the operation of the JT Fax 14400B Dual board. The following chart lists the configuration commands: Command Description ---------------------------------------------------------------------- BUSY_COMMAND Look for busy DTMF_OFF_TIME_COMMAND DTMF off time DTMF_ON_TIME_COMMAND DTMF on time ENHANCED_MODE_OFF_COMMANDDisable 14400B modes ENHANCED_MODE_ON_COMMAND Enable all 14400B modes EXTEND_STATUS_OFF_COMMAND Disable extended status EXTEND_STATUS_ON_COMMAND Enable extended status FAX_144_MODE_OFF_COMMAND Disable receive 14400 kbps FAX_144_MODE_ON_COMMAND Enable receive 14400 kbps FAX_MODE_COMMAND Enable JT Fax Mode (testing) MODEM_MODE_COMMAND Disable Fax and enable Modem NO_BUSY_COMMAND Do not look for busy PULSE_INTER_COMMAND Interdigit time REC_PCX_OFF_COMMAND Disable receive PCX format REC_PCX_ON_COMMAND Enable receive PCX format SET_CARRIER_COMMAND Time to wait for carrier STATUS_COMMAND Enable the 14400B status USER_CSI_COMMAND Initializes CSI USER_TSI_COMMAND Initializes TSI +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Voice Commands The Voice mode allows the recording and playback of non-compressed voice messages. During Phase A of a call, the Voice mode is entered after a user definable period of silence. (See Appendix D for a detailed description of JT Fax fax phases). After a period of silence, the user is notified of the "silent period" (SILENCE_DETECTED status) and is provided with a number of options. In addition, DTMF detect is automatically enabled. Command Description ------------------------------------------------------------------------------- CLEAR_VOICE_COMMAND Disables voice mode GAIN_DOWN_COMMAND Decrements gain increment by 1 dB (See SET_GAIN_COMMAND) GAIN_UP_COMMAND Increments the gain increment by 1 dB (See SET_GAIN_COMMAND) PLAY_END_COMMAND End voice playback PLAY_START_COMMAND Start voice play back RECORD_START_COMMAND Start recording voice RECORD_STOP_COMMAND Stop recording voice RETURN_TO_COMMAND Return to command state from voice mode RETURN_TO_DATA_COMMAND Return to Fax state from voice mode SET_ACT_TIMER_COMMAND Sets the time to wait for CNG tone SET_GAIN_COMMAND Sets the gain increment SET_SLEW_RATE_COMMAND Sets the "fall off rate" for voice signal SET_VOICE_MODE_COMMAND Enables voice mode and CNG detect TX_DTMF_COMMAND Transmit DTMF tones +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Utility Functions Some additional functions were added to aid in testing and debugging. The utility functions provide some of the low-level commands (primitives) used by the JT Fax 14400B to operate the hardware components. The JT Fax 14400B must be in FAX_MODE before any of the utility commands can be used. Caution: Some of these commands change the configuration of the Data Pump. If a change occurs to the data pump configuration, then a hardware reset will restore the values. Command Description ------------------------------------------------------------------ CED_OFF_COMMAND Turn off CED tone CED_ON_COMMAND Turn on CED tone CNG_OFF_COMMAND Turn off CNG tone CNG_ON_COMMAND Turn on CNG tone DTMF_DIAL_COMMAND Dial a DTMF number DTMF_OFF_COMMAND Turn off a DTMF tone DTMF_ON_COMMAND Turn on a DTMF tone OEM_CODE_COMMAND Execute OEM code onboard OEM_LOAD_COMMAND Load OEM code onboard OFF_HOOK_COMMAND Connects phone line ON_HOOK_COMMAND Disconnects phone line PULSE_BREAK_COMMAND Sets the Break Time PULSE_DIAL_COMMAND Pulse dial a number PULSE_MAKE_COMMAND Sets the Make Time RESET_DATA_PUMP_COMMAND Resets the data pump SPEAKER_OFF_COMMAND Turn off the speaker SPEAKER_ON_COMMAND Turn on the speaker ************************************************************************** Return Codes The return codes are enhanced for the JT Fax 14400B. In addition to the old JT Fax 9600B error codes, enhanced codes are available for more accurate problem determination during a FAX call. The standard JT Fax 9600B return codes include two status codes, and the remaining codes are error return codes. The return codes are listed in the following table. Error Code Description -------------------------------------------------------------------------------- BAD_DCS_RECEIVE Error in DCS data BAD_DIS_RECEIVE Bad DIS was received BAD_MCF_RESPONSE Messages not confirmed BAD_MPS_RECEIVE Error in MPS frame BAD_TRAINING Errors received in training BUSY Busy signal was detected CLIPPED ASCII to T4 line too long NO_CARRIER No connection was established NO_DATA_RECEIVED No data received within time limit NO_DIALTONE No dialtone reported in time limit NO_PC_ACK No PC acknowledge within time limit PAGE_ERROR Error in transmit page or receive page PHASE_D_ERROR Error occurred in Phase D SUCCESSFUL_RECEIVE Receive was successful SUCCESSFUL_TRANSMIT Transmit was successful The enhanced mode can be enabled/disabled by the following commands: ENHANCED_MODE_ON ENHANCED_MODE_OFF (default). The additional enhanced return codes are listed in the following table. Error Code Description ------------------------------------------------------------------------------ ABORT_ERROR Callee aborted call DCN_RECEIVED_ERROR Unexpected DCN received DIALING_ERROR DTMF digit in error DTMF_ERROR Tone was not DTME DTMF_TIMEOUT_ERROR DTMF tone was not available during timeout FAXIT_ERROR Error during fax transmission FONT_TOO_LARGE_ERROR Soft font too large HDLC_CRC_ERROR HDLC frame had bad CRC HDLC_FRAME_TIMEOUT_ERROR No HDLC frame in time limit HDLC_MIN_SIZE_ERROR Facsimile control frames had incorrect size LONG_LINE_ERROR Line too long in ASCII to Huffman MAX_FRAME_ERROR Facsimile control frames had incorrect size NEGOTIATING_TRAIN_DCN_ERROR DCN received during training NO_CNG_ERROR No CNG detected in received mode NO_RECEIVE_DCS_ERROR No DCS received PERCENTAGE_ERROR Errors in line exceeded percentage limits PHASE_A_ERROR Error occurred in Phase A PHASE_B_ERROR Error occurred in Phase B PHASE_C_ERROR Error occurred in Phase C PHASE_E_ERROR Error occurred in Phase E PHASE_E_TIMEOUT Time-out during handshake Phase E ROCK_ERROR Error in DSP chip VOICE_ERROR Error in voice procedures ************************************************************************** Status Codes In addition to the enhanced error codes, enhanced status messages are available. Since status codes do not require a response or action, the codes are reported in the STATUS_CODE. Status Description ---------------------------------------------------------- CONNECT Connection established NEGOTIATING_SPEED Negotiating connect speed PHASE_A_START Phase A started PHASE_B_START Phase B started PHASE_C_START Phase C started PHASE_D_START Phase D started RING Ring detected SUBSCRIBE_INFO CSI/TSI information available in buffer area ========================================================================== Chapter 4 Voice and DTMF Detect The voice and DTMF detect option of the JT Fax 14400B Dual has a Manual and an Automatic operating mode. Automatic requires a connection while Manual may be initiated in an off- line or on-line state. The Automatic DTMF/VOICE detection for JT Fax 14400B Dual detects DTMF/VOICE during the Phase A (answer mode) of a call. Enable the CNG_DETECT_ON_command for the automatic option. To disable the automatic mode, issue the CNG_DETECT_OFF_COMMAND. After a user-defined period of silence (no CNG tone), the JT Fax 14400B Dual enters DTMF/VOICE mode. During this stage, the user has the following options: detecting DTMF tones returning to data mode and continuing to answer Fax calls (i.e., send CED) executing voice commands returning to command state. The Manual mode only requires setting the options for DTMF/VOICE and the specific command to be issued. Manual mode is independent of connection status. ************************************************************************** DTMF Detect Automatic DTMF detection is accomplished when the JT Fax 14400B Dual is in the DTMF/VOICE on-line detect mode. The JT Fax 14400B Dual automatically searches for DTMF tones. If a DTMF tone is found, the tone value is placed in the first byte of the Data_Area and a DTMF_DETECT_STATUS is written into the API command block at location COMMAND. The JT Fax 14400B Dual waits until the Host retrieves the DTMF value and issues a PC_ACK command before searching for more DTMF tones. The manual option provides the capability of entering DTMF detect mode from command state. This is independent of connect status. The JT Fax 14400B Dual operates similarly to the automatic DTMF detect. The difference is that the Host must cancel the DTMF detect search with an EOD command. The JT Fax 14400B Dual issues a BOARD_ACK_COMMAND in response. The option for CNG_DETECT does not have to be enabled for the manual DTMF detect. However, DTMF detect option does need to be enabled for manual and automatic operation. The DTMF tones detected and reported to the Host are: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *, #, A, B, C, D. Commands available for Automatic operation are: CNG_DETECT_ON_COMMAND DTMF_DIAL_COMMAND DTMF_DETECT_STATUS RETURN_TO_DATA_COMMAND RETURN_TO_COMMAND Commands available for manual operation include: DTMF_DETECT_ON_COMMAND EOD DTMF_DETECT_STATUS The following is an example of automatic DTMF detect: (Connecting Call) . . . Wait for Response SILENCE_DETECT_STATUS Check Status VOICE_MODE . . . Wait for Response DTMF_DETECT_STATUS Retrieve Byte Code from Data_Area Send PC_ACK . . . (Continuing in DTMF/Voice Mode) The following is an example of manual DTMF detect: Send GET_DTMF_COMMAND Wait for Response BOARD_ACK_STATUS Wait for Response DTMF_DETECT_STATUS Retrieve Byte Data from Data_Area Send PC_ACK . . . (When Finished) Send EOD_FLAG Wait for Response BOARD_ACK_COMMAND Send PC_ACK ************************************************************************** Voice Mode Voice mode can be entered when you are connected or disconnected to the phone line. When connected, voice recording is provided from the telephone line to either Fax A or Fax B. In the disconnected mode, input is provided by a microphone on Fax A only. In automatic voice mode, DTMF and voice are enabled. During Phase A of the call, the Voice mode is entered after a user definable period of silence. After the period of silence, the Host is notified of the "silent period" (SILENCE_DETECTED status) and starts to execute options similar in functionality to the Class 2 voice commands. The options in Automatic mode are: Command Description ---------------------------------------------------------------------------------- CNG_DETECT_ON_COMMAND Enables voice mode and CNG detect CNG_DETECT_OFF_COMMAND (default) SET_ACTIVITY_TIMER Sets the time to wait for CNG tone GAIN_UP Increases the gain increment by 1 dB GAIN_DOWN Decrements gain increment by 1 dB SET_GAIN Sets the gain increment SET_SLEW_RATE Sets the "fall-off rate" for voice signal RETURN_TO_COMMAND Returns to command state from voice mode RECORD_START Starts recording voice RECORD_STOP Stops recording voice PLAY_START Starts voice play back PLAY_END Ends voice playback DIAL_DTMF_COMMAND Transmits DTMF tones Manual voice mode requires the host to issue the SETUP_VOICE_COMMAND from command state. Once the command is received by the FAX, the JT Fax 14400B Dual enters the VOICE/DTMF mode and all commands available for Automatic mode are applicable except the RETURN_TO_DATA_COMMAND. During the actual playing and recording of a message, the DTMF detection is not available. This is due to the half-duplex nature of the 144EFX chip and different modes required for DTMF DETECT and VOICE mode. However, after the message is sent DTMF detection may occur. Voice data format during record and playback is in a raw binary 8-bit resolution format. The following PDL example is for automatic voice playback: (Initiate Call) . . . Wait for Response SILENCE_DETECT_STATUS Send PC_ACK Write Voice Data in Data_Area Send Play Start Wait for Response LOAD_DATA_COMMAND . . . (Finish Data) SEND_EOV_FLAG Wait for Response BOARD_ACK_COMMAND Send PC_ACK . . . (Continue with Voice/DTMF loop) Voice playback is completed. The following example is for manual record off-line. Step 1: Attach the microphone to the Fax A microphone jack. Step 2: Start the voice recording process: Send REC_START_COMMAND Wait for Response BOARD_ACK_STATUS Wait for Response LOAD_DATA_COMMAND Retrieve voice data from Data_Area Send PC_ACK . . . Wait for Response EOVFLAG Send PC_ACK This completes the voice recording. To use Manual Voice Recording, use the previous procedure, but replace the REC_START_COMMAND with the MANUAL_REC_COMMAND. ========================================================================== Chapter 5 Command Reference This Chapter includes detailed descriptions of the JT Fax command set. The point of reference is from the HOST side for all commands. The command descriptions are in the following format: Characteristic Description COMMAND: Specific function or status mnemonic CODE: Hex code CATEGORY: Fax, Status, Configuration, Utility, Voice DIRECTION: Host to JT Fax or JT Fax to Host INPUT to JT: Location in API block. Direction: JT Fax OUTPUT from JT: Location in API block. Direction: Host DEFAULT: Default for status commands DESCRIPTION: Detailed description of command EXAMPLE: A flow language example RELATED FUNCTIONS: Any other functions that might be of use The commands are presented in alphabetical order. Note: A PC_ACK is required after a BOARD_ACK status unless otherwise specified by the specific command feature. ************************************************************************** BAD_RAM Characteristic Description COMMAND: BAD_RAM CODE: 0F1H CATEGORY: Fax - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: BAD_RAM is issued after the RAM test was performed. BAD_RAM is an indication of a faulty random access memory chip. It is not recommended that FAX operation proceed. Call Hayes Customer Service. EXAMPLE: BOARD_SYNC_COMMAND - Host BAD_RAM - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ***************************************************************************** BAD_ROM Characteristic Description COMMAND: BAD_ROM CODE: 0F2H CATEGORY: Fax - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: BAD_ROM is issued after the ROM test was performed. BAD_ROM is an indication of faulty read only memory chip. It is not recommended that FAX operation proceed. Call Hayes Customer Service. EXAMPLE: BOARD_SYNC_COMMAND - Host BAD_ROM - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ************************************************************************** Board_ACK_Status Characteristic Description COMMAND: Board_ACK_Status CODE: 02H CATEGORY: Status DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: This API is part of the handshake protocol with the Host. The JT Fax board returns a BOARD_ACK_STATUS acknowledging the receipt or completion of a command. Some commands have additional handshake sequences and are detailed under the specific command. EXAMPLE: REC_PCX_ON_COMMAND - Host BOARD_ACK_STATUS - JT Fax (continue if necessary) . . . RELATED FUNCTIONS: PC_ACK ************************************************************************** Board_Sync_Command Characteristic Description COMMAND: Board_Sync_Command CODE: 0FFH CATEGORY: FAX - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: GOOD_INIT IDLE DEFAULT: Not applicable DESCRIPTION: The BOARD_SYNC_COMMAND initiates command state for the Fax after a power up or HARDWARE_RESET_COMMAND. No commands are accepted by the Fax until this command is issued. After the command is issued, BOARD_STATUS is updated in the API block. A GOOD_INIT is issued when the Fax is ready for commands. If a GOOD_INIT is not received , then the Host may need to issue another HARDWARE_RESET_COMMAND. EXAMPLE: BOARD_SYNC_COMMAND - Host GOOD_INIT - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: GOOD_INIT, HARDWARE_RESET_COMMAND ************************************************************************** Busy_Command Characteristic Description COMMAND: Busy_Command CODE: 02FH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Detect Busy DESCRIPTION: The BUSY_COMMAND instructs the JT Fax to recognize a busy signal. EXAMPLE: IDLE - FAX BUSY_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_DIAL_COMMAND, DTMF_DIAL_COMMAND ************************************************************************** CED_Off_Command Characteristic Description COMMAND: CED_Off_Command CODE: 037H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CED_OFF_COMMAND terminates the output of an ITU-T T.4 specified 2100 Hz tone. EXAMPLE: CED_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CED_ON_COMMAND ***************************************************************************** CED_On_Command Characteristic Description COMMAND: CED_On_Command CODE: 036H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CED_ON_COMMAND outputs an ITU-T T.4 specified 2100 Hz tone. EXAMPLE: CED_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CED_OFF_COMMAND ************************************************************************** CNG_Detect_Off_Command Characteristic Description COMMAND: CNG_Detect_Off_Command CODE: 061H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Off DESCRIPTION: The CNG_DETECT_OFF_COMMAND must be issued from command state. The command disables the voice and DTMF modes when answering a call. After answering a call, the Fax will not determine if the caller is a voice call or Fax call by detecting a CNG tone. The answer back tone is transmitted. EXAMPLE: IDLE - FAX CNG_DETECT_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR ************************************************************************** CNG_Detect_On_Command Characteristic Description COMMAND: CNG_Detect_On_Command CODE: 060H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Off DESCRIPTION: The CNG_DETECT_ON_COMMAND must be issued from command state. The command enables the voice and DTMF modes when answering a call. After answering a call, the Fax will not determine if the caller is a voice call or Fax call by detecting a CNG tone. The answer back tone is transmitted. EXAMPLE: IDLE - FAX CNG_DETECT_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR ************************************************************************** CNG_Off_Command Characteristic Description COMMAND: CNG_Off_Command CODE: 035H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CNG_OFF_COMMAND terminates the output of an ITU-T T.4 specified 1100 Hz tone. EXAMPLE: CNG_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CNG_OFF_COMMAND ************************************************************************** CNG_On_Command Characteristic Description COMMAND: CNG_On_Command CODE: 034H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CNG_ON_COMMAND outputs an ITU-T T.4 specified 1100 Hz tone. EXAMPLE: CNG_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CNG_OFF_COMMAND ************************************************************************** DTMF_Detect_Off_Command Characteristic Description COMMAND: DTMF_Detect_Off_Command CODE: 074H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_OFF_COMMAND disables the Fax capability to detect DTMF tones while in the Voice/DTMF mode. EXAMPLE: IDLE - FAX DTMF_DETECT_OFF_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** DTMF_Detect_On_Command Characteristic Description COMMAND: DTMF_Detect_On_Command CODE: 073H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_ON_COMMAND enables the Fax capability to detect DTMF tones while in the Voice/DTMF mode. EXAMPLE: IDLE - FAX DTMF_DETECT_ON_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** DTMF_Detect_Status Characteristic Description COMMAND: DTMF_Detect_Status CODE: 070H CATEGORY: Voice , Status DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: DTMF digit in DATA_AREA DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_STATUS informs the Host that a DTMF tone was detected while in VOICE/DTMF mode. The DTMF_DETECT_STATUS command is only issued after a DTMF_DETECT_ON_COMMAND. EXAMPLE: DTMF_DETECT_ON_COMMAND - Host . . . SILENCE_DETECTED_STATUS - FAX PC_ACK - Host ...load DTMF byte in DATA_AREA - FAX DTMF_DETECT_STATUS - FAX ...retrieve DTMF byte - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", DTMF_DETECT_ON_COMMAND, DTMF_DETECT_OFF_COMMAND ************************************************************************** DTMF_Dial_Command Characteristic Description COMMAND: DTMF_Dial_Command CODE: 02CH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: DTMF number at OFFSET 00H in buffer_area Max. number length 60 characters OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_DIAL_COMMAND dials the digits stored at BUFFER_AREA. The dial command does not connect the phone line. The line must be connected with an OFF_HOOK_COMMAND. The dial string has several digits and modifiers. The DTMF digits supported are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, #, A, B, C, D. The dial modifiers are: JT Fax 9600B COMPATIBILITY First byte: 'P' - Pulse Dial 'T' - Tone Dial Second byte: 'W' - Wait for Dial Tone ' ' - Do not Wait If the first two bytes are 'MA' (Manual Dial) a number will not be dialed. JT Fax 14400B -------------------------- P - pulse dial T - tone dial W - wait for dialtone , - 2 second pause ! - flash hook I - no busy detect Note: This command may be used in Voice offline mode. EXAMPLE: IDLE - FAX (load string value in buffer_area) - Host DIAL_DTMF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_ON_TIME_COMMAND, DTMF_OFF_TIME_COMMAND ************************************************************************** DTMF_Off_Command Characteristic Description COMMAND: DTMF_Off_Command CODE: 029H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_OFF_COMMAND commands the JT Fax to terminate a DTMF tone. The command does not disconnect the line. EXAMPLE: IDLE - FAX DTMF_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: DTMF_ON_COMMAND, FAX_MODE_COMMAND, ON_HOOK_COMMAND ************************************************************************** DTMF_Off_Time_Command Characteristic Description COMMAND: DTMF_Off_Time_Command CODE: 02BH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: DTMF time at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 70 ms DESCRIPTION: DTMF_OFF_TIME_COMMAND configures the interdigit off time for automatic dialing of DTMF digits. The value specified is in milliseconds with a length of WORD. Max. value is 65 seconds. Standard minimum value is 65 ms. EXAMPLE: IDLE - FAX (load word value in buffer_area) - Host DTMF_OFF_TIME_COMMAND - - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_DIAL_COMMAND, DTMF_ON_TIME_COMMAND ************************************************************************** DTMF_On_Command Characteristic Description COMMAND: DTMF_On_Command CODE: 028H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: DTMF tone digit at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_ON_COMMAND commands the JT Fax to send a DTMF digit specified by the value in BUFFER_AREA. The duration of the tone is controlled by the Host. The command does not connect the phone line. The tone is terminated by the DTMF_OFF_COMAMND. Note: JT Fax must be in Fax mode for Utility commands. EXAMPLE: IDLE - FAX (load digit in buffer area) - Host DTMF_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: DTMF_OFF_COMMAND, FAX_MODE_COMMAND, OFF_HOOK_COMMAND ************************************************************************** DTMF_On_Time_Command Characteristic Description COMMAND: DTMF_On_Time_Command CODE: 029H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: DTMF time at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 70 ms DESCRIPTION: DTMF_ON_TIME_COMMAND sets the on-time for automatic dialing of DTMF digits. The value specified is in milliseconds with a length of WORD. Max. value is 65 seconds. The standard minimum value is 65 ms. EXAMPLE: IDLE - FAX (load word value in buffer_area)- Host DTMF_ON_TIME_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_DIAL_COMMAND, DTMF_OFF_TIME_COMMAND ************************************************************************** Enhanced_Mode_Off_Command Characteristic Description COMMAND: Enhanced_Mode_Off_Command CODE: 053H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The ENHANCED_MODE_OFF_COMMAND allows the JT Fax 14400B to operate in 9600B compatible mode. All status messages, error codes and speeds provided by the 14400B are disabled. EXAMPLE: IDLE - FAX ENHANCED_MODE_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, FAX_144_MODE_OFF_COMMAND, ENHANCED_MODE_ON_COMMAND ************************************************************************** Enhanced_Mode_On_Command Characteristic Description COMMAND: Enhanced_Mode_On_Command CODE: 052H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The ENHANCED_MODE_ON_COMMAND allows the JT Fax 14400B to operate in enhanced mode. All status messages, error codes and speeds provided by the 14400B are enabled. EXAMPLE: IDLE - FAX ENHANCED_MODE_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, FAX_144_MODE_ON_COMMAND, ENHANCED_MODE_OFF_COMMAND ************************************************************************** EOD_Flag Characteristic Description COMMAND: EOD_Flag CODE: 076H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The EOD_FLAG terminates the DTMF search. Any other command can be issued after this command sequence is complete. EXAMPLE: IDLE - FAX GET_DTMF_COMMAND - Host BOARD_ACK_COMMAND - FAX ...byte in data_area - FAX DTMF_DETECT_STATUS - FAX ...retrieve byte from data_area - Host PC_ACK - Host ...continue looking for DTMF - FAX . . . EOD_FLAG - HOST BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF" ************************************************************************** EOPFLAG Characteristic Description COMMAND: EOPFLAG CODE: 08H CATEGORY: Fax DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: EOPFLAG signifies that an end of page is necessary. The Host may elect to use the LINE_COUNT field in the API block for setting an end of page. The Fax page is transmitted until the line count is reached ( MIN_PAGE = non zero) and an EOP is issued to the called device. If the FAX page was short and a standard page length is used, then the LINECOUNT field sets the page length (MIN_PAGE = 0). All pages are the length of LINECOUNT. When using the EOPFLAG a PC_ACK command is not necessary. EXAMPLE: LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . LOAD_DATA_COMMAND - FAX ...load data - Host EOPFLAG - Host LOAD_DATA_COMMAND - FAX . . . RELATED FUNCTIONS: LOAD_DATA_COMMAND, EOTFLAG ************************************************************************** EOTFLAG Characteristic Description COMMAND: EOTFLAG CODE: 0FH CATEGORY: Fax DIRECTION: JT Fax to Host Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: EOTFLAG signifies an end of data transfer. The Fax command can be issued from either the Host or JT Fax. The Host issues the command in the XMIT_MODE to end data transmission, or in downloadable fonts to end the font download. The JT Fax issues the command to end a Fax reception. EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host EOTFLAG - Host . . . IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, RECVINIT, LOADFONT_COMMAND, "Error Codes, EOV_FLAG ************************************************************************** EOV_FLAG Characteristic Description COMMAND: EOV_FLAG CODE: 066H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA LOAD_DATA_COMMAND DEFAULT: Not applicable DESCRIPTION: The EOV_FLAG notifies the Host/Fax that the last buffer of data is in the DATA_AREA. This command is issued after a PLAY_START_COMMAND sequence. The command is used for voice data only. EXAMPLE: REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX ...load data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX ...load data from DATA_AREA - Host REC_STOP_COMMAND - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, RECVINIT_COMMAND ************************************************************************** Error Characteristic Description COMMAND: Error CODE: 06H CATEGORY: Status DIRECTION: JT Fax to Host INPUT to JT: IDLE OUTPUT from JT: RET_CODE contains error code DEFAULT: Not applicable DESCRIPTION: ERROR signifies that an error has occurred. The type of error can be retrieved from the RET_CODE field. ERROR does require the host to reset the COMMAND_DATA field to IDLE when the error code is read. EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . ERROR - JT Fax BUSY(ret_code field) - JT Fax (check ret_code) - Host IDLE - Host RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, RECVINIT, Error Codes ************************************************************************** Extend_Status_Off_Command Characteristic Description COMMAND: Extend_Status_Off_Command CODE: 04FH CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The EXTEND_STATUS_OFF_COMMAND disables the extended status available to the Host with the JT Fax 14400B. The status codes do not appear in the STATUS field of the API block and the status command is not issued. EXAMPLE: IDLE - FAX EXTEND_STATUS_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, STATUS_COMMAND ************************************************************************** Extend_Status_On_Command Characteristic Description COMMAND: Extend_Status_On_Command CODE: 04EH CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The EXTEND_STATUS_ON command enables the extended status available to the Host with the JT Fax 14400B. The status codes appear in the STATUS field of the API block after the status command is issued. EXAMPLE: IDLE - FAX EXTEND_STATUS_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, STATUS_COMMAND ************************************************************************** FAX_144_Mode_Off_Command Characteristic Description COMMAND: FAX_144_Mode_Off_Command CODE: 051H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The FAX_144_MODE_OFF_COMMAND allows the JT Fax 14400B to be compatible with the JT Fax 9600B. This command is included due to the change in the speed indexes for 14,400 bps. EXAMPLE: IDLE - FAX FAX_144_MODE_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, FAX_144_MODE_ON_COMMAND, ENHANCED_MODE_OFF_COMMAND ************************************************************************** FAX_144_Mode_On_Command Characteristic Description COMMAND: FAX_144_Mode_On_Command CODE: 050H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The FAX_144_MODE_ON_COMMAND allows the JT Fax 14400B to enable reception of Faxes at the 14,400 bps rate. This command is included due to the change in the speed indexes for 14,400 bps. An index value of 5 in the BAUD_RATE field indicates 14,400 bps and a 4 indicates 12,000 bps. This command only affects the speed. EXAMPLE: IDLE - FAX FAX_144_MODE_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, FAX_144_MODE_OFF_COMMAND, ENHANCED_MODE_ON_COMMAND ************************************************************************** FAX_Mode_Command Characteristic Description COMMAND: FAX_Mode_Command CODE: 026H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: MODEM MODE in Command State FAX MODE is automatic with Fax commands DESCRIPTION: The FAX_MODE_COMMAND is required for all Utility commands. The command also allows JT Fax to control the Telco line interface instead of requiring OEM daughter cards. PC Bus access is available in both Fax and Modem mode. If a daughter card is not attached, Modem mode will not be necessary for JT Fax. EXAMPLE: IDLE - FAX FAX_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX OFF_HOOK_COMMAND - Host RELATED FUNCTIONS: MODEM_MODE_COMMAND, "Utility Commands" ************************************************************************** Gain_Down_Command Characteristic Description COMMAND: Gain_Down_Command CODE: 068H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The GAIN_DOWN_COMMAND decrements the maximum gain of the voice record by 1 dB. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The value is retained between recordings. EXAMPLE: IDLE - FAX GAIN_DOWN_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Gain_Up_Command Characteristic Description COMMAND: Gain_Up_Command CODE: 067H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The GAIN_UP_COMMAND increments the maximum gain of the voice record by 1 dB. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The value is retained between recordings. EXAMPLE: IDLE - FAX GAIN_UP_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Get_DTMF_Command Characteristic Description COMMAND: Get_DTMF_Command CODE: 075H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Byte value in DATA_AREA DEFAULT: Not applicable DESCRIPTION: The GET_DTMF_COMMAND can also be used in command state. The command initiates DTMF mode and continually searches for DTMF tones. The EOD_FLAG terminates the DTMF search. Any other command can be issued after this command. The "on/off hook" is controlled by the Host. EXAMPLE: IDLE - FAX GET_DTMF_COMMAND - Host BOARD_ACK_STATUS - FAX ...byte in data_area - FAX DTMF_DETECT_STATUS - FAX ...retrieve byte from data_area - Host PC_ACK - Host ...continue looking for DTMF - FAX . . . EOD_FLAG - HOST BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", EOD_FLAG ************************************************************************** Good_Init Characteristic Description COMMAND: Good_Init CODE: 0F0H CATEGORY: FAX - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The GOOD_INIT command is issued after a BOARD_SYNC_COMMAND is received following power up. It indicates that the FAX is ready for commands and the ROM/RAM test was good. EXAMPLE: BOARD_SYNC_COMMAND - Host GOOD_INIT - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ************************************************************************** Hardware_Reset_Command Characteristic Description COMMAND: Hardware_Reset_Command CODE: 030H CATEGORY: Control DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The HARDWARE_RESET_COMMAND instructs JT Fax to initiate a "power on reset" function. The command is placed in the API block location, RESET_BOARD, at offset 51H. When RESET_BOARD is set to a HARDWARE_RESET_COMMAND, then the following happens: RAM and ROM test is executed data pump is reset, memory cleared all options set to default conditions. After six seconds, JT Fax starts waiting for a SYNC_COMMAND from the Host. A SYNC_COMMAND must be issued by the Host before any commands can be accepted. Note: This command should be used a last resort because it resets the JT Fax hardware and all user configurations to default. EXAMPLE: IDLE - FAX HARDWARE_RESET_COMMAND - Host (wait for 6 seconds) SYNC_COMMAND - Host IDLE_STATUS - FAX RELATED FUNCTIONS: SYNC_COMMAND, SOFTWARE_RESET_COMMAND ************************************************************************** Idle_Status Characteristic Description COMMAND: Idle_Status CODE: 01H CATEGORY: Status DIRECTION: JT Fax to Host Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: IDLE_STATUS is a compatibility status code/command. The command is issued to reset the Command field. The command is used by the Host in response to a BOARD_ACK_STATUS, or by JT Fax in response to a PC_ACK command or when in command state waiting for command. This command should only be used while in command state. EXAMPLE: IDLE - FAX (load time in buffer area - Host SET_CARRIER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - Host RELATED FUNCTIONS: BOARD_ACK_STATUS, PC_ACK ************************************************************************** Load_Data_Command Characteristic Description COMMAND: Load_Data_Command CODE: 03H CATEGORY: FAX DIRECTION: JT Fax to Host INPUT to JT: Data in DATA_AREA PC_ACK EOTFLAG EOPFLAG OUTPUT from JT: none LOAD_DATA_COMMAND EOTFLAG (receive mode only) DEFAULT: Not applicable DESCRIPTION: The LOAD_DATA_COMMAND is used when large amounts of data are needed. The direction of the load depends on the mode selected. If in TRANSMIT_MODE, the load data command is issued by JT Fax to indicate that data is ready to be received from the Host in the DATA_AREA. Once all the data has been placed in the DATA_AREA, the Host issues a PC_ACK. In the RECEIVE_MODE, the command is issued by JT Fax to alert the Host that data is available in the data area to be retrieved. After the Host retrieves the data, the host issues a PC_ACK. EXAMPLE: RECEIVE_MODE only RECVINIT - JT Fax (Host load ID in Buffer Area) PC_ACK - Host LOAD_DATA_COMMAND - JT Fax (Host retrieves data) PC_ACK - Host . . . EOT - JT Fax RELATED FUNCTIONS: EOT_FLAG, RECVINIT, PC_ACK ************************************************************************** Load_Font_Command Characteristic Description COMMAND: Load_Font_Command CODE: 04H CATEGORY: FAX DIRECTION: Host to JT Fax INPUT to JT: Font Data in DATA_AREA EOTFLAG OUTPUT from JT: BOARD_ACK FONT_TOO_LARGE DEFAULT: Not applicable DESCRIPTION: The LOAD_FONT_COMMAND is used to load the predefined JT Fax fonts or a user designed font (see Chapter 7). The font would be used only in transmit mode and file type ASCII_TYPE. Since the font data is larger than the DATA area several LOAD_DATA_COMMANDS would be issued by JT Fax. Issuing a HARD_RESET_COMMAND destroys a soft font, requiring a reload. Issuing a SOFT_RESET_COMMAND does not destroy a soft font. EXAMPLE: LOAD_FONT_COMMAND - Host LOAD_DATA_COMMAND - JT Fax ...load data in data_area - Host PC_ACK - Host LOAD_DATA_COMMAND - JT Fax . . . EOT - Host RELATED FUNCTIONS: PC_ACK, EOT, LOAD_DATA_COMMAND, "JT Fax Fonts" ************************************************************************** Manual_REC_Command Characteristic Description COMMAND: MANUAL_REC_COMMAND CODE: 10H CATEGORY: Fax DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: Manual receive enables the Host to force JT Fax to answer a call. The EXTEND_STATUS mode must be enabled before the STATUS command is received. A RING status appears in the STATUS_CODE field. After the status is retrieved, the Host returns the COMMAND field to IDLE. EXAMPLE: IDLE - FAX STATUS_COMMAND - FAX ...retrieve status code RING - Host MANUAL_REC_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . RELATED FUNCTIONS: "Status Codes", STATUS_COMMAND ************************************************************************** Modem_Mode_Command Characteristic Description COMMAND: Modem_Mode_Command CODE: 027H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: MODEM MODE in Command State FAX MODE is automatic with FAX commands DESCRIPTION: The MODEM_MODE_COMMAND is required to remove the previous FAX_MODE_COMMAND. The command also allows the OEM daughter Card to control the Telco line interface instead of JT Fax. PC Bus access is available in both Fax mode and Modem mode. If a Daughter card is not attached, Modem mode will not be necessary for JT Fax. EXAMPLE: IDLE - FAX FAX_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX OFF_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX MODEM_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND ************************************************************************** No_Busy_Command Characteristic Description COMMAND: No_Busy_Command CODE: 02EH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Detect Busy DESCRIPTION: The NO_BUSY_COMMAND instructs the JT Fax to ignore the busy signal. EXAMPLE: IDLE - FAX NO_BUSY_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_DIAL_COMMAND, DTMF_DIAL_COMMAND ************************************************************************** OEM_Code_Command Characteristic Description COMMAND: OEM_Code_Command CODE: 079H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The OEM_CODE_COMMAND executes Host code that was downloaded to the Fax. The Fax utilizes a 16 MHz processor. The OEM_CODE_COMMAND executes custom assembly language code for the Host. The OEM code and data can be no larger than 28 KB. The OEM code has access to the command byte structure at 0:8000H. The code segment must be "0" and the code or data must start at 0:8800H. Additional 3K of RAM is available at 0:67D0H. (See Appendix F). EXAMPLE: IDLE - FAX OEM_CODE_COMMAND - Host ...OEM code executes - FAX ...OEM code terminates - FAX BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "OEM CODE ", OEM_LOAD_COMMAND ************************************************************************** OEM_Load_Command Characteristic Description COMMAND: OEM_Load_Command CODE: 07AH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: OEM code in DATA_AREA OUTPUT from JT: LOAD_DATA_COMMAND BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The OEM_LOAD_COMMAND loads the OEM code into the Soft Font RAM. The OEM code and data can be no larger than 28 KB. The OEM_LOAD_COMMAND sequence is similar to the LOADFONT_COMMAND sequence. If the OEM code is larger than the space available, a FONT_TOO_LARGE error is returned. The load aborts when the error is reported. The OEM code remains in RAM until power up or a HARDWARE_RESET_COMMAND or LOAD_FONT_COMMAND is issued. Note Soft fonts are not available when using this command. EXAMPLE: IDLE - FAX OEM_LOAD_COMMAND - Host LOAD_DATA_COMMAND - JT Fax ...Load OEM code into Data_area - Host PC_ACK - Host LOAD_DATA_COMMAND - JT Fax . . . EOT - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "OEM CODE ", OEM_CODE_COMMAND, LOAD_FONT_COMMAND ************************************************************************** Off_Hook_Command Characteristic Description COMMAND: Off_Hook_Command CODE: 025H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The OFF_HOOK_COMMAND forces the JT Fax to go "Off-Hook" (i.e., pickup the phone). The command is used when the Host wants to initiate a dialing sequence (DTMF or Pulse). The OFF_HOOK_COMMAND returns to Command state after completion. Note: JT Fax must be in FAX_MODE to use Utility commands. EXAMPLE: IDLE - FAX OFF_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND, ON_HOOK_COMMAND ************************************************************************** On_Hook_Command Characteristic Description COMMAND: On_Hook_Command CODE: 024H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The ON_HOOK_COMMAND forces the JT Fax to go "on- hook". The command is used after "OFF_HOOK_COMMAND" has been issued when the Host requires a return to "on-hook" condition (i.e., hang-up). The ON_HOOK_COMMAND returns to Command state after completion. Note: JT Fax must be in FAX_MODE to use Utility commands. EXAMPLE: IDLE - FAX ON_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND, OFF_HOOK_COMMAND ************************************************************************** Online_Voice_Record_Off Characteristic Description COMMAND: Online_Voice_Record_Off CODE: 78H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Off DESCRIPTION: This API command turns the online voice record option off. This command can be issued after the voice message has been received to prevent premature termination of tone or voice greeting messages. EXAMPLE: IDLE - Host . . . ONLINE_VOICE_RECORD_ON - Host BOARD_ACK - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host . . . EOVFLAG - FAX ...Load data from Data Area - Host PC_ACK - Host IDLE - FAX ONLINE_VOICE_RECORD_OFF - Host BOARD_ACK - FAX RELATED FUNCTIONS: ONLINE_VOICE_RECORD_ON, EOVFLAG, RECORD_START_COMMAND ************************************************************************** Online_Voice_Record_On Characteristic Description COMMAND: Online_Voice_Record_On CODE: 77H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Off DESCRIPTION: This API provides the option to record voice messages while online. The message is terminated after the caller disconnects and dial tone is detected. Since tones in the range of 350-620 Hz cause termination, it is necessary to disable this option during all other recordings. EXAMPLE: IDLE - Host . . . SILENCE_DETECTED_STATUS - FAX . . . ONLINE_VOICE_RECORD_ON - Host BOARD_ACK - FAX PC_ACK - Host REC_START_COMMAND - Host . . . EOVFLAG - FAX ...Load data from Data Area - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: ONLINE_VOICE_RECORD_OFF, EOVFLAG, RECORD_START_COMMAND ************************************************************************** PC_ACK Characteristic Description COMMAND: PC_ACK CODE: 05H CATEGORY: STATUS handshake DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None, Idle DEFAULT: Not applicable DESCRIPTION: The PC_ACK command is used as acknowledgment between the PC software and the JT Fax 14400B. The response is appropriate when receiving a command from the JT Fax 14400 B Dual board. A PC_ACK does not require a response from the JT Fax 14400B Dual board. EXAMPLE: . . . GET_DTMF_COMMAND - Host BOARD_ACK_STATUS - JT Fax DTMF_DETECT_STATUS - JT Fax (retrieve DTMF code) PC_ACK - Host . . . RELATED FUNCTIONS: LOAD_DATA_COMMAND, RECVINIT, LOAD_FONT_COMMAND, BOARD_ACK_STATUS ************************************************************************** Play_End_Command Characteristic Description COMMAND: Play_End_Command CODE: 063H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The PLAY_END_COMMAND stops the playback of a voice file in voice mode. The current buffer is deleted and the voice transmission is halted. EXAMPLE: PLAY_START_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX PLAY_END_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", PLAY_START_COMMAND, EOV_FLAG ************************************************************************** Play_Start_Command Characteristic Description COMMAND: Play_Start_Command CODE: 062H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: Binary Voice data in DATA_AREA OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The PLAY_START_COMMAND initiates the playing of a recorded voice file. The command sequence is similar to a XMIT_COMMAND. An EOV_FLAG is issued when the last voice data is entered in DATA_AREA. The timing for loading data is the same as XMIT_COMMAND for JT Fax data formats. EXAMPLE: PLAY_START_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host EOV_FLAG - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR, PLAY_STOP_COMMAND, EOV_FLAG ************************************************************************** Pulse_Break_Command Characteristic Description COMMAND: Pulse_Break_Command CODE: 03AH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area in milliseconds OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 60 milliseconds DESCRIPTION: The PULSE_BREAK_COMMAND requires the Host to set the value of the "BREAK" portion of the make/break ratio for pulse dialing. The value is written into buffer_area before the command is issued. EXAMPLE: IDLE - FAX PULSE_BREAK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: PULSE_MAKE_COMMAND, PULSE_DIAL_COMMAND ************************************************************************** Pulse_Dial_Command Characteristic Description COMMAND: Pulse_Dial_Command CODE: 02DH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: Pulse number at OFFSET 00H in buffer_area Max. number length 60 characters. OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: PULSE_DIAL_COMMAND dials the phone number at BUFFER_AREA. The command does not connect the phone line. The line must be connected with an OFF_HOOK_COMMAND. The dial string has several digits and modifiers. The DTMF digits supported are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. The dial modifiers are: JT Fax 9600B COMPATIBILITY ------------------------------- First byte: 'P' - Pulse Dial 'T' - Tone Dial Second byte: 'W' - Wait for Dial Tone ' ' - Do not Wait If the first two bytes are 'MA' (Manual Dial) a number will not be dialed. JT Fax 14400B --------------------------- P - pulse dial T - tone dial W - wait for dialtone , - 2 second pause ! - flash hook I - no busy detect Note: JT Fax must be in Fax mode for Utility commands. EXAMPLE: IDLE - FAX (load string value in buffer_area) - Host PULSE_DIAL_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_INTER_COMMAND ************************************************************************** Pulse_Inter_Command Characteristic Description COMMAND: Pulse_Inter_Command CODE: 032H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Time in milliseconds, WORD value in buffer_area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 600 milliseconds DESCRIPTION: The PULSE_INTER_COMMAND sets the interdigit time of the pulse dial. The units of the command are in milliseconds. EXAMPLE: IDLE - FAX (value in buffer_area) - Host PULSE_INTER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - FAX RELATED FUNCTIONS: PULSE_BREAK_COMMAND, PULSE_MAKE_COMMAND ************************************************************************** Pulse_Make_Command Characteristic Description COMMAND: Pulse_Make_Command CODE: 03BH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area in milliseconds OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 40 milliseconds DESCRIPTION: The PULSE_MAKE_COMMAND requires the Host to set the value of the "make" portion of the make/break ratio for pulse dialing. The value is written into buffer_area before the command is issued. EXAMPLE: IDLE - FAX PULSE_MAKE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: PULSE_MAKE_COMMAND, PULSE_DIAL_COMMAND ***************************************************************************** RecvInit Characteristic Description COMMAND: RecvInit CODE: 10H CATEGORY: Fax DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: RECVINIT command is issued to the Host when JT Fax detects an incoming call. The call may be a voice call or a fax call. It is up to the Host to make this determination (see Chapter 4) and decide to initiate voice procedures, disconnect, or continue the call. The default is to continue the call. If the caller is voice and CNG_DETECT is not enabled, the CED is transmitted and the call disconnects when Carrier timer expires. CNG detect mode has several options (see Chapter 4). EXAMPLE: IDLE - FAX RECVINIT_COMMAND - FAX ...(load ID into Buffer Area) - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...retrieve data - Host PC_ACK - Host . . . EOTFLAG - JT Fax ...retrieve data - Host PC_ACK - Host IDLE - JT Fax RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, SET_VOICE_COMMAND, DTMF_DETECT_COMMAND, DTMF_DETECT, SILENCE_DETECTED, SET_ACTIVITY_TIMER, "Error Codes" ************************************************************************** Rec_PCX_Off_Command Characteristic Description COMMAND: Rec_PCX_Off_Command CODE: 023H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: PCX receive conversion disabled DESCRIPTION: REC_PCX_OFF_COMMAND configures JT Fax to convert the caller's T.4 encoded file to a JT_FAX_FORMAT. EXAMPLE: IDLE - FAX REC_PCX_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: RECVINIT, MANUAL_REC_COMMAND, "Data Formats" ************************************************************************** Rec_PCX_On_Command Characteristic Description COMMAND: Rec_PCX_On_Command CODE: 022H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: PCX receive conversion disabled DESCRIPTION: REC_PCX_ON_COMMAND configures JT Fax to convert the caller's T.4 encoded file to a PCX version 3 file. The PCX header is given to the Host in the first data load. EXAMPLE: IDLE - FAX REC_PCX_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: RECVINIT, MANUAL_REC_COMMAND ************************************************************************** Rec_Start_Command Characteristic Description COMMAND: Rec_Start_Command CODE: 064H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA Load_Data_Command DEFAULT: Not applicable DESCRIPTION: The REC_START_COMMAND instructs the fax to initiate a recording session. The command sequences are similar to the receive Fax data. Once the command is issued, the data pump is configured and voice data from the A/D converter is read immediately. The data sampling continues until a REC_STOP_COMMAND is issued. EXAMPLE: REC_START_STATUS - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...retrieve data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host . . . RELATED FUNCTIONS: "Voice and DTMF", REC_STOP_COMMAND, RECVINIT_COMMAND Note: This command can be used to record offline on Fax A with a microphone. Recording may be done while connected on-line with either Fax A or Fax B using the phone line as input. ************************************************************************** Rec_Stop_Command Characteristic Description COMMAND: Rec_Stop_Command CODE: 065H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA Load_Data_Command EOV_FLAG DEFAULT: Off DESCRIPTION: The REC_STOP_COMMAND instructs the JT Fax to terminate a recording session. The recording stops and the data in the record buffers is transmitted to the Host. To end the transmission of data to the Host, the JT Fax issues an EOV_FLAG. EXAMPLE: REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host REC_STOP_COMMAND - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, RECVINIT_COMMAND Note: After recording messages, disconnect the microphone from Fax A. ************************************************************************** Reset_Data_Pump_Command Characteristic Description COMMAND: Reset_Data_Pump_Command CODE: 033H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The RESET_DATA_PUMP command resets the Fax data pump. When resetting the data pump, the chip returns to its initial power on state. This command should only be used before the DIAL_DTMF_COMMANDS state. The command is used by JT Fax to set the data pump to a known state after each call or receive. EXAMPLE: RESET_DATA_PUMP_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: HARDWARE_RESET_COMMAND ************************************************************************** Return_to_Command Characteristic Description COMMAND: Return_to_Command CODE: 072H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The RETURN_TO_COMMAND terminates voice mode and returns to command state. The JT Fax returns to command state, and the data pump is reset. The phone line may be disconnected by the ON_HOOK_COMMAND if desired. EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host RETURN_TO_COMMAND - HOST BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, RETURN_TO_DATA_COMMAND ************************************************************************** Return_to_Data_Command Characteristic Description COMMAND: Return_to_Data_Command CODE: 071H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The RETURN_TO_DATA_COMMAND terminates voice mode and returns to complete a fax call. The JT Fax is returned to fax data at the beginning of Phase A and transmits the CED to the caller. (See Chapter 6). EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host RETURN_TO_DATA_COMMAND - Host BOARD_ACK_STATUS - FAX ...send CED - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** Setup_Voice_Command Characteristic Description COMMAND: Setup_Voice_Command CODE: 05FH CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SETUP_VOICE_COMMAND must be issued from command state. The command is used to enter voice mode for RECORDING or PLAYBACK and testing. Once in the VOICE mode, all voice commands can be issued and DTMF detection is enabled. See Chapter 6. EXAMPLE: IDLE - FAX SETUP_VOICE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: Voice and DTMF" ************************************************************************** Set_Act_Timer_Command Characteristic Description COMMAND: Set_Act_Timer_Command CODE: 06FH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 3.5 seconds DESCRIPTION: The SET_ACT_TIMER_COMMAND sets the activity timer when CNG_DETECT_ON_COMMAND has been issued. The timer value is specified in milliseconds and has a range from 0-65000. The activity timer starts after the Fax picks up the phone line. If a CNG tone is detected (Fax caller), the timer is reset, a CED is transmitted (Fax callee) and the Fax call continues. However, if silence is detected (no CNG tone) for the duration of the activity timer, the SILENCE_DETECT_STATUS is issued. The JT Fax automatically enters VOICE/DTMF mode. Note: Cycle time for a CNG_TONE is 3 seconds off, 0.5 seconds on. EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host IDLE - Host . . . PLAY_START_COMMAND - Host . . . RELATED FUNCTIONS: "Voice and DTMF", PLAY_START_COMMAND, DTMF_DIAL_COMMAND, DTMF_DETECT_ON_COMMAND ************************************************************************** Set_Carrier_Command Characteristic Description COMMAND: Set_Carrier_Command CODE: 020H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Wait for carrier time buffer area (word value) - in milliseconds max. (65 seconds) OUTPUT from JT: BOARD_ACK DEFAULT: 60 sec DESCRIPTION: The SET_CARRIER_COMMAND sets the time to wait for the caller and called station to complete Phase A. The NO_CARRIER timer starts after the dial and terminates at the beginning of Phase B. If the timer expires, the call is disconnected and an ERROR status returned to the host. Carrier may also be set placing a work value into Buffer Area [0] before a Sync Command is issued. Units are in milliseconds. EXAMPLE: (load time in buffer area) - Host SET_CARRIER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: ERROR, "Error Codes", "Status Codes" ************************************************************************** Set_Gain_Command Characteristic Description COMMAND: Set_Gain_Command CODE: 069H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The SET_GAIN_COMMAND sets the maximum gain of the voice recording. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The maximum gain is calculated by the following formula: MAX_GAIN = 655.36 [ 50 - Gain Limit (dB) ]. The value should be a 16-bit, positive, twos compliment value. The value is retained between recordings. EXAMPLE: IDLE - FAX ...load Gain Limit WORD in buffer_area - Host SET_GAIN_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_Sample_Rate_Command Characteristic Description COMMAND: Set_Sample_Rate_Command CODE: 06AH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: BYTE value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 9600 Hz DESCRIPTION: The SET_SAMPLE_RATE_COMMAND sets the sampling rate of the voice recording. The value placed into the Buffer_Area is an index to the provided sample rates. The following is an EXAMPLE of the available sample rates: --------------- 1 9600 Hz 2 8000 Hz 3 7200 Hz The value is retained between voice mode sessions. EXAMPLE: IDLE - FAX ...load BYTE in buffer_area - Host SET_SAMPLE_RATE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_Slew_Rate_Command Characteristic Description COMMAND: Set_Slew_Rate_Command CODE: 06BH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: WORD value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 0 DESCRIPTION: The SET_SLEW_RATE_COMMAND sets the slew rate of the voice recording. The value is placed into the Buffer_Area. The Slew rate value determines the fall off time of the voice wave form. The value can be adjusted by the following formula, SLEW_RATE = [19968/(Sample Rate x fall time in seconds)]. The value is a 16-bit, positive, twos compliment value. The value is retained between voice sessions. EXAMPLE: IDLE - FAX ...load BYTE in buffer_area - Host SET_SLEW_RATE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_User_CSI_Command Characteristic Description COMMAND: Set_User_CSI_Command CODE: 055H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Buffer_Area 20 byte CSI OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SET_USER_CSI_COMMAND provides flexibility in Fax identification. TSI/CSI Fax information for transmit and receive can be modified to contain a specialized message. The format previously available for 9600B allowed the CSI to be placed in the buffer area on transmit and receive. The format of header data in the BUFFER_AREA consisted of: 0-20 CSI 21-54 -other user information 55 - Page number followed by space (transmit only) 56 - 61 padded spaces. The CSI was always contained in the header of the transmitted page. In receive mode, the CSI was transmitted to the caller. Since the CSI appeared on the Fax page as a header, there was no way to send different CSI data to the caller/callee. This command allows two different messages to appear to the caller/callee. One message in the CSI and the other in the printed Fax header. The SET_USER_CSI mode can only be cleared with a HARD_RESET. EXAMPLE: IDLE - FAX SET_USER_CSI_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, "Buffer Area" ************************************************************************** Set_User_TSI_Command Characteristic Description COMMAND: Set_User_TSI_Command CODE: 054H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Buffer_Area 20 byte TSI OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SET_USER_TSI_COMMAND provides flexibility in fax identification. TSI/CSI fax information for transmit and receive can be modified to contain a specialized message. The format previously available for 9600B allowed the TSI to be placed in the buffer area on transmit and receive. The format of header data in the BUFFER_AREA consisted of: 0-20 TSI 21-54 -other user information 55 - Page number followed by space (transmit only) 56 - 61 padded spaces. The TSI was always contained in the header of the transmitted page. In receive mode, the TSI was transmitted to the caller. Since the TSI appeared on the Fax page as a header, there was no way to send different TSI data to the caller/callee. This command allows two different messages to appear to the caller/callee. One message in the TSI and the other in the printed Fax header. The SET_USER_TSI mode can only be cleared with a HARD_RESET. EXAMPLE: IDLE - FAX SET_USER_TSI_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, "Buffer Area" ************************************************************************** Silence_Detected_Status Characteristic Description COMMAND: Silence_Detected_Status CODE: 06CH CATEGORY: Voice DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The SILENCE_DETECTED_STATUS notifies the Host that a CNG tone was not detected within the user-defined time limit. The notification only occurs if a CNG_DETECT_ON_COMMAND has been previously issued. Once silence has been detected, the JT Fax enters into Voice mode. The Host has the following options 1. voice commands, 2. wait for DTMF detection, 3. return to data and continue call, and 4. return to command and terminate call. EXAMPLE: . . . SILENCE_DETECTED_STATUS - FAX PC_ACK - Host REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, DTMF_DIAL, DTMF_DETECT_ON_COMMAND ************************************************************************** Software_Reset_Command Characteristic Description COMMAND: Software_Reset_Command CODE: 031H CATEGORY: Control DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The SOFTWARE_RESET_COMMAND instructs JT Fax to initiate a soft reset function. The command is placed in the API block location, RESET_BOARD, at offset 51H. When RESET_BOARD is set to a SOFTWARE_RESET_COMMAND, the hardware is reset and all buffers are cleared (soft fonts are not cleared). After the default carrier time is reset to the value contained in BUFFER_AREA, JT Fax is in command state. EXAMPLE: SOFTWARE_RESET_COMMAND - Host (wait for 3 seconds) IDLE_STATUS - FAX RELATED FUNCTIONS: HARDWARE_RESET_COMMAND, SET_CARRIER_COMMAND ************************************************************************** Speaker_Off_Command Characteristic Description COMMAND: Speaker_Off_Command CODE: 03EH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The SPEAKER_OFF_COMMAND is used when the Host wants the speaker off for VOICE setup or when using the Utility commands. In normal JT Fax operation the speaker is controlled by the SPEAKER field of the API block. EXAMPLE: SPEAKER_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: SPEAKER_ON_COMMAND ************************************************************************** Speaker_On_Command Characteristic Description COMMAND: Speaker_On_Command CODE: 03DH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The SPEAKER_ON_COMMAND is used when the Host wants the speaker on for VOICE setup or when using the Utility commands. In normal JT Fax operation the speaker is controlled by the SPEAKER field of the API block. EXAMPLE: SPEAKER_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: SPEAKER_OFF_COMMAND ************************************************************************** Xmit_Command Characteristic Description COMMAND: Xmit_Command CODE: 01H CATEGORY: FAX Transmit DIRECTION: Host to JT Fax INPUT to JT: Phone number in buffer area (if desired) Header in buffer area FAX data in swap buffer EOPFLAG EOTFLAG OUTPUT from JT: LOAD_DATA_COMMAND BOARD_ACK SUCCESSFUL_TRANSMIT BUSY RING status messages DEFAULT: Not applicable DESCRIPTION: This API is the FAX transmit command. The transmit command operates the speaker, dials the phone number, and transfers the fax. After the dial is completed, the Host is prompted for the header information. This header is placed on the top page of the fax and a portion is used for the TSI. Once the header is received, the host is prompted for the data with the LOAD_DATA_COMMAND. The data is passed in the DATA_AREA location. The Host must issue a PC_ACK when all the data is loaded into DATA_AREA. Further LOAD_DATA_COMMANDs are issued until the fax transfer is complete. The Host terminates the transfer with an EOT command. The time constraint placed on the Host for data transfer is based on the format of the data. In the JT Fax format, approximately 10k of data can be buffered on the FAX. So, timing during transmission is only critical during the first initial stages of buffering. The initial stages require data to be loaded as fast as possible. If the data requires translation, the timing is more critical. The Host buffers 2 initial loads. The worst case scenario for ASCII and PCX is approximately 5 seconds between data loads at 14400 bps before data is lost. The data placed in DATA_AREA may be in one of three formats. These are: ASCII_FORMAT 00H PCX_3_FORMAT 01H JT_FAX_FORMAT 63H The formats are discussed in detail in Chapter 7. Characteristic Description EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host (load baud rate if desired) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . EOT - Host TRANSMIT - FAX BOARD_ACK - FAX PC_ACK - Host IDLE - Host When the Host is transmitting multiple pages and wants to control the page breaks, an EOP is issued instead of PC_ACK. To control the length of the page the min_page parameter should be used. RELATED FUNCTIONS: IDLE, EOT, PC_ACK, BOARD_ACK, SET_CARRIER_COMMAND, FAX_MODE_COMMAND, BUSY_COMMAND, ENHANCED_MODE_ON_COMMAND, dial modifiers ========================================================================== Chapter 6 Shared Memory Interface Description All functions, status codes, return codes, and data pass through the JT Fax shared memory interface. The interface address is selectable in 4k increments and is located between memory address 8000H to 0FFFFH (see the Hayes JT Fax 14400B Dual Installation Guide). If the C programming language is used for the Host program, then the compiler should pack the API structure on byte boundaries. This is accomplished in Microsoft C by using the following statement: #pragma pack (1) ************************************************************************** Shared Memory Interface Structure The shared memory interface structure is organized as follows: Note: This map is used with Fax A at offset 0 and Fax B at offset 800H. Offset Length Name Usage/Description -------------------------------------------------------------------------------------- 0000H-0005H ID Location of board address 0005H-0001H COMMAND Commands and Status 0006H-0001H RING_COUNT Ring to answer on 0007H-0001H CALL_MODE Transmit/Receive 0008H-0001H FILE_TYPE ASCII, PCX, JT Fax 0009H-0001H XMIT_FONT Resolution, Font number 000AH-0001H MIN_PAGE Force 11 inch page flag 000BH-003DH BUFFER_AREA Phone numbers & headers 0048H-0002H SECONDS Length of connection 004AH-0001H SPEAKER on, off, on till connect 004BH-0001H RET_CODE Completion code 004CH-0002H PAGES Number of pages sent 004EH-0002H DATA_LEN Length of valid data 0050H-0001H BAUD_RATE 2400, 4800, 7200, 9600, 12000, 14400 baud 0051H-0001H RESET_BOARD Reset the board 0052H-0001H STATUS_CODE Extended status 0053H-0001H LINE_COUNT Number of lines transmitted 0054H-0001H RCV_FILE_TYPE Receive file type 0055H-0002H RCV_LINE Lines per page received (ASCII) 0057H-0001H RESERVED Not used at this time 0058H-07A8H DATA_AREA Used for file data The following paragraphs describe the Shared Memory Interface fields: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ID Field where the product keyword is located. Set by Board. The ID field is used to locate the board at the start of a program. Memory can be searched from segment 8000H to F000H for the 'ASHER' keyword at each 2K boundary. In the JT Fax 14400B tool kit, FINDFAX.ASM file contains an assembler routine that locates the 'ASHER' string. This allows the Host program to locate the board in memory without knowing the exact memory location. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ COMMAND Field for command handshakes. Set by Host and JT Fax. The COMMAND byte is used to pass most commands to the board and some status bytes are returned through this byte. The status bytes are JT Fax 9600B compatible codes described in Chapter 3. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RING_COUNT Field for ring to answer count. Set by Host. Ring_count is a status byte used for the ring-to-answer-on count. The count allows the board to answer the call when a certain number of rings is reached. This byte should be set to 0FH if ring detection is not desired. For originate only applications and manual answers, a status command RING is provided in the first byte of buffer area. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CALL_MODE Field for answer or receive mode. Set by Host. Call_mode should be set prior to making or receiving a call. The call modes currently supported by the board are: Code Description --------------------------------- 00H Call to transmit a fax 02H Answer to receive a fax Note: This option is currently not supported. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ FILE_TYPE Field for specific file type. Set by Host. File_type should be set prior to a transmit. The file_type parameter determines the processing necessary for the JT Fax 14400B Dual to convert data to T.4 format. The field can have the following values: Code Description ------------------------- 00H ASCII_FORMAT 01H PCX _3_FORMAT 63H JT_Fax_FORMAT For additional information see File Formats in Chapter 7. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ XMIT_FONT Field for JT Fax font resolution. Set by Host. Xmit_font field is only used to transmit of data. The field should be set prior to all transmits, and is used to select the font for ASCII and high/low resolution for other types of transmits. If ASCII data is being sent in any font other than font0 (80/low) then that font must be loaded onto the board prior to the transmit. If any other form of data is being sent (i.e., PCX, JT Fax) then 00H and 01H should be used to indicate the resolution. Code Description ---------------------------------------------- 00H 80 character/line low resolution 01H 80 character/line high resolution 02H 132 character/line low resolution 03H 132 character/line high resolution For additional information see JT Fax Formats section Chapter 7. MIN_PAGE Field set for page minimum length. Set by Host. If min_page is zero when the transmit command is issued, all pages will be forced to be at least 11 inches long. If MIN_PAGE is set, the number of lines in linecount is used. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BUFFER_AREA Field for FAX ID, phone number. Set by Host, JT Fax and status messages. Buffer_area is an area used to pass the phone number to be dialed, the header line to put on the top of each page, fax ID and enhanced return codes. The default time-out-after-dial (binary) can also be loaded into buffer_area on start up or can be configured by using the SET_CARRIER_COMMAND function. For more information on buffer area see section Appendix E. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SECONDS Field for time of phases. Set by JT Fax. Seconds is a timer that resets to zero at the start of a call or answer and again after receiving the first carrier from the other end (to get a true connection time). The host has the option to reset the timer. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SPEAKER Field for speaker control. Set by Host. The Speaker byte controls operation of the speaker as follows: Code Description --------------------- 00H SPKR_ALWAYS_ON 01H SPKR_ON_TILL_CONNECT 02H SPKR_ALWAYS_OFF +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RET_CODE Field for errors and JT Fax 9600B status. Set by JT Fax. Ret_code is the error return code from a fax operation. For compatibility, the two 9600B status codes are returned in this field. The values are: Code Description ----------------------------- 0 Successful Transmit 1 No Dial Tone 2 No Carrier 3 Busy 7 Clipped The Handshaking/Compatibility return codes are: Code Description ------------------------------- 128 Bad DIS REC 129 Bad Training 130 Phase B Error 131 Bad MPS Response 132 Bad MCF Response 133 Bad DSC Response 134 Phase D Error 135 No PC Acknowledge 136 No Data Received 137 Page Error on Receive 138 Successful Receive Other Return Codes are described in Appendix B. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PAGES Field for number of pages. Set by JT Fax. Pages is a word that keeps a running count of the number of pages sent. It is updated during transmission and reception. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA_LEN Field for number of bytes in DATA_AREA Set by Host and JT Fax. Fax Data_len is a word that holds the number of data bytes valid in the data_area. It must be loaded prior to a load_data command. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BAUD_RATE Field for connect speed. Set by Host and JT Fax. Baud_rate is a byte that shows the connection speed. At the start of each transmission it defaults to 14400 BPS. For compatibility, the receive defaults to 9600 BPS. 14400 BPS receive can be obtained by issuing the FAX_144_MODE_ON API. The BAUD_RATE field has the following values: Code Description --------------------- 00H 2400 BPS 01H 4800 BPS 02H 7200 BPS 03H 9600 BPS 04H 12000 BPS 05H 14400 BPS The baud rate may be monitored for correct connect speed. Note: This rate may also be modified by the host for transmit speed. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RESET_BOARD Field for reset. Set by Host. This byte is used to reset the board after an error, or it can be done on exit to set the board to a known state. The API HARDWARE_RESET_COMMAND in this byte causes a full reset of the board, including memory testing and clearing and can take 5-6 seconds to complete. The API SOFTWARE_RESET_COMMAND causes a partial reset and does not clear memory. It disconnects the phone line and returns to command state. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS_CODE Field for enhanced status. Set by JT Fax. The status code field provides additional status for Fax transmission. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ LINE_COUNT Field for number lines. Set by Host. Line_count is a byte that gives the number of lines to put on the page before a page break. The function is only applicable when MIN_PAGE is set to 0 and during ASCII transmits. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RECV_FILE_TYPE Field used to indicate the type of file. Set by Host. The values are: Code Description ------------------------- 01H PCX_3_FORMAT 63H JT_FAX_FORMAT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RECV_LINE Field used to indicate the number of PCX lines recieved. Set by JT Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA_AREA Field for data transfer. Set by Host. This is the area used to buffer data out to the board. It is 1960 bytes long. ========================================================================== Chapter 7 File Formats This chapter describes the JT Fax file conversion formats. These formats include: PCX ASCII JT Fax. ***************************************************************************** PCX Conversion The PCX conversion supplied with JT Fax 14400B Dual is a receive "on-the- fly" conversion at all speeds supported. The data presented to the Host includes a PCX 3 header and data. All data is in black and white, 1-plane, 1 bit-per-pixel, xmax (horizontal axis) = 1727; color is not supported. Additional fields are provided for the PCX receive. These new fields are receive type (BYTE) at offset 55H and receive_lines at offset 56H (WORD). The following commands pertain to PCX conversion: REC_PCX_ON_COMMAND REC_PCX_OFF_COMMAND (default) The length of the PCX file (in lines) is reported in the new variable named RECV_LINES and is correct when the EOT is received from the fax. The RECV_LINES count should be placed in the PCX file by the Host. The offset into the PCX file for this count is 10 (zero relative) and is WORD value. The PCX_RECV_ON_COMMAND must be issued after setting Recvfile type to PCX. ************************************************************************** ASCII The following sections describe ASCII font management in JT Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Fonts The JT Fax 14400B Dual board gives the user the flexibility of 4 different fonts. These fonts are identified as font.0, font.1, font.2, and font.3. Font.0 is the default font and Fonts 0-3 are available as user defined fonts. The fonts are designed in two resolutions, low and high resolution. Low resolution is defined as an 18-bit by 16-row character cell. High resolution is defined by a 18-bit by 32-row character cell. All fonts are available in the JT FAX software toolkit under the files font.0, font.1, font.2, and font.3. Contact Hayes Customer Service, see Appendix I. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Mode There are two different modes for resolution, normal mode and compressed mode. In normal mode the character cell consists of 18 bits per character cell line. Normal mode is the default mode for the default font used by JT Fax. The JT Fax compressed mode consists of a character cell that is 13 bits-per-character line. Both modes support 80 and 132 columns. Below is a list of these fonts with their corresponding resolution. Font Name Resolution ----------------------------------------------------------- Low res faxfont.0 200x100 80 columns normal mode High res faxfont.1 200x200 132 columns normal mode Low res faxfont.2 200x100 80 columns compressed High res faxfont.3 200x200 132 columns compressed +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Font Modifications To modify these fonts, the programmer can execute the font generation program, fontcon.com. This program can be downloaded in the file faxfont.arc (contact Hayes Customer Service, see Appendix I). If the user wishes to create a custom font file without the use of the fontcon.com program, the fonts must be bit mapped as explained in the following paragraphs. The bit map is arranged in a "pixel line" format. The character must be converted into a bit-format byte aligned. Character tables start with the ASCII character for a space " " and end with an ASCII character for a "~". The character is assembled into a 4x16 byte matrix in low resolution and a 4x32 byte matrix for high resolution. All parts of the character cell must be represented. In lower case characters, the additional white space above the character must be included. For example, the lower case ASCII 'a' has several lines of white space above the 'a'. This must be included. Within each matrix cell, the font character is defined by 4 bytes per line by: low resolution = 18 bits < 22 bits unused > high resolution = 13 bits < 27 bits unused >. All unused bits are ignored and are set to a 0xff. For example, a '!' in low-resolution normal mode 4x16 80-column, with a bit set for white would be as follows: Row Bitmap Row Bitmap -------------------------------------------------------------------------------- 1 0xff, 0xff, 0xc0, 0xff (top space) 9 0xff, 0xf9, 0xc0, 0xff (char) 2 0xff, 0xf0, 0xc0, 0xff (char) 10 0xff, 0xff, 0xc0, 0xff (char) 3 0xff, 0xf0, 0xc0, 0xff (char) 11 0xff, 0xff, 0xc0, 0xff (char) 4 0xff, 0xf0, 0xc0, 0xff (char) 12 0xff, 0xf9, 0xc0, 0xff (char) 5 0xff, 0xf0, 0xc0, 0xff (char) 13 0xff, 0xff, 0xc0, 0xff (space) 6 0xff, 0xf0, 0xc0, 0xff (char) 14 0xff, 0xff, 0xc0, 0xff (space) 7 0xff, 0xf0, 0xc0, 0xff (char) 15 0xff, 0xff, 0xc0, 0xff (space) 8 0xff, 0xf9, 0xc0, 0xff (char) 16 0xff, 0xff, 0xc0, 0xff (space) The JT Fax font generation software offers the user the ability to create or modify the ASCII coded fonts used by the JT Fax products. The user will need to download FAXFONT.ARC and FONT.ARC from the HAYES BBS (see Appendix I). For development purposes, the programmer is advised to create a font sub- directory containing four sub-directories (one for each font), and copy the proper files into each sub-directory as follows: Directory Contents --------------------------------------------------------------- Font All directories below. Font 0 Low resolution normal 80 columns. Include FONT0.EXE, FONTSCRN, and FAXFONT.0. Font 1 High resolution normal 80 columns. Include FONT1.EXE, FONTSCRN, and FAXFONT.1. Font 2 Low resolution compressed 132 columns. Include FONT2.EXE, FONTSCRN, and FAXFONT.2. Font 3 High resolution compressed 132 columns. Include FONT3.EXE, FONTSCRN, and FAXFONT.3. To use the graphics editor, move to a font sub-directory, and type FONTX.EXE, where X is the font number to modify. The editor then appears, along with some instructions. EXAMPLE: C:/font/2 followed by: font2 This example illustrates the suggested sub-directory structure and the procedure for editing font2 (low resolution compressed). The FONTSCRN file is a graphic overlay for the font editor. When the "Which character to edit" prompt is displayed, you may enter a keyboard character. To enter a non-keyboard character, find its ASCII code, hold down the key and enter the ASCII code with the numeric keypad. To move about in the font field, use the cursor control keys. The instructions appearing on the screen guide you to edit a font. When the font is complete, enter to save it. The high resolution fonts allow editing the top and bottom half of each pixel in the font field. In the high resolution fonts, use T and B to paint or delete the Top or Bottom of a font element. As a font is modified, a FAXFONT.TMP file is created. FONTCON.COM is then converts the FAXFONT.TMP file into the format used by the JT FAX software. The syntax is: FONTCON FAXFONT.TMP FAXFONT.X The FAXFONT.X is the new file you created, and is now ready to be copied into your FAX directory for testing. EXAMPLE: c:\font\2> fontcon faxfont.tmp faxfont.2 The example converts the FAXFONT.TMP from sub-directory FONT2 and converts it to FAXFONT.2. Font generation may require several iterations of some character. This is normal, as fonts displayed on a CRT appear different than when received on a Fax machine. Note: Only one soft font can be downloaded. This is the font used by the Fax. Only one soft font at any given time can be downloaded and used. Soft Font cannot be used with the OEM_CODE command. ************************************************************************** JT Fax Format The JT Fax file format is based on a modified Huffman coding used in Group 3 facsimile preceded by an eight byte header. The Huffman coding schema is in Appendix A.) The header format is as follows: Offset Explanation --------------------------------------------------------------- 0 A zero byte 1 Either 0 or 40H. If the 40H bit is set, then the file is a high resolution (200x200) file. 2 reserved 3 reserved 4 reserved 5 reserved 6 reserved 7 reserved The Huffman data format is a data compression method based on run length encoding. One hundred and twenty-eight run lengths (64 white and 64 black), thirteen make-up codes, and an end-of-line (EOL) are defined by the ITU-T. These codes are available in Appendix A. The JT Fax only supports files of 1728 pixels per line, the only required format for a Group 3 fax machine. The EOL command is used to end every line in a fax-format file. It consists of 11 zero bits and a one bit. Additional zero bits, or fill bits, can be inserted prior to the EOL command. Although some JT Fax files use fill bits so that each line of fax data begins on a byte boundary, inclusion of fill bits is not necessary for any JT Fax family product. The JT Fax file is organized as follows: Eight byte header EOL Huffman compressed line EOL Huffman compressed line EOL . . . Huffman compressed line EOL Huffman compressed lines are generated using the tables in Appendix A. Huffman compression assumes that every line begins with a white run length, alternates to a black, back to white, up to an EOL. If a run length is greater than 63, then a make-up code is used. A make-up code is always followed by a run length of the same color, even if the length is zero. The Huffman codes are sent left-bit first (as seen in the table), but must be assembled so that the low-order bit in each byte is the first to send. The following example demonstrates this process: Assume the input line of data is: 30 white, 10 black, 130 white, 192 black, 1366 white From the table in Appendix A: 30 white = 00000011 10 black = 0000100 130 white = 128 white = 10010 (make up-code) + 2 white = 0111 192 black = 192 black = 010111(make-up code) + 0 black = 0000110111 1366 white = 1344 white = 011011010 (make-up code) + 22 white = 0000011 EOL = 000000000001 Put the bits in a stream: 00000011000010010010011101011100001101110110110100000011 000000000001 Break them out, eight bits at a time: 00000011-00001001-00100111-01011100-00110111-01101101- 00000011-00000000-0001 Reverse the bit-order: 11000000-10010000-11100100-00111010-11101100-10110110- 11000000-00000000-xxxx1000 The xxxx could be the first four bits from the next Huffman stream of data, or four additional 0s could be inserted on the other side of the 1, making the last byte 10000000. The final hex code for this line is: C0 90 E4 3A EC B6 C0 00 80 ========================================================================== Appendix A ITU-T T.4 Huffman Encoding This appendix defines the T.4 Huffman encoding used in JT Fax. Run Length White Code Black Code ------------------------------------------------ 0000 00110101 0000110111 0001 000111 010 0002 0111 11 0003 1000 10 0004 1011 011 0005 1100 0011 0006 1110 0010 0007 1111 00011 0008 10011 000101 0009 10100 000100 0010 00111 0000100 0011 01000 0000101 0012 001000 0000111 0013 000011 00000100 0014 110100 00000111 0015 110101 000011000 0016 101010 0000010111 0017 101011 0000011000 0018 0100111 0000001000 0019 0001100 00001100111 0020 0001000 00001101000 0021 0010111 00001101100 0022 0000011 00000110111 0023 0000100 00000101000 0024 0101000 00000010111 0025 0101011 00000011000 0026 0010011 000011001010 0027 0100100 000011001011 0028 0011000 000011001100 0029 00000010 000011001101 0030 00000011 000001101000 0031 00011010 000001101001 0032 00011011 000001101010 0033 00010010 000001101011 0034 00010011 000011010010 0035 00010100 000011010011 0036 00010101 000011010100 0037 00010110 000011010101 0038 00010111 000011010110 0039 00101000 000011010111 0040 00101001 000001101100 0041 00101010 000001101101 0042 00101011 000011011010 0043 00101100 000011011011 0044 00101101 000001010100 0045 00000100 000001010101 0046 00000101 000001010110 0047 00001010 000001010111 0048 00001011 000001100100 0049 01010010 000001100101 0050 01010011 000001010010 0051 01010100 000001010011 0052 01010101 000000100100 0053 00100100 000000110111 0054 00100101 000000111000 0055 01011000 000000100111 0056 01011001 000000101000 0057 01011010 000001011000 0058 01011011 000001011001 0059 01001010 000000101011 0060 01001011 000000101100 0061 00110010 000001011010 0062 00110011 000001100110 0063 001101000 00001100111 0064 11011 0000001111 0128 10010 000011001000 0192 010111 000011001001 0256 0110111 000001011011 0320 00110110 000000110011 0384 00110111 000000110100 0448 01100100 000000110101 0512 01100101 000000110110 0576 01101000 000001101101 0640 01100111 000000100100 0704 011001100 000000100101 0768 011001101 000000100110 0832 011010010 000000100111 0896 011010011 000000111000 0960 011010100 000000111001 1024 011010101 000000111010 1088 011010110 000000111011 1152 011010111 000000111010 1216 011011000 000000111011 1280 011011001 000000101000 1344 011011010 000000101001 1408 011011011 000000101010 1472 010011000 000000101011 1536 010011001 000000101100 1600 010011010 000000101101 1664 011000 000000110010 1728 010011011 000000110011 EOL 000000000001 000000000001 ========================================================================== Appendix B Return Codes The following paragraphs describe the correct time to read the RET_CODE field of the JT Fax API window. When the PC is finished receiving data from the JT Fax board, then the JT Fax issues an EOT in the Command field. The JT Fax board sends a BOARD_ACK in the Command field when the transmission is complete. At this time the PC should read the RET_CODE field of the JT Fax API window. If the command field changes to an error, the RET_CODE is valid. Some of the errors are fatal and some are operational. Fatal errors halt execution with an error flag while operational errors are less severe and will allow the Fax operation to continue. Operational errors are read at the end of a receive or transmit. Once an error occurs, Buffer area [0] can be checked for additional return code information. If available, the byte will be non-zero. Also, the status field can be checked to determine the state of the JT Fax. The following paragraphs describe the JT Fax Return Codes. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 00 MNEMONIC: SUCCESSFUL_TRANSMIT DESCRIPTION: A successful transmit occurred with no errors. This is a JT Fax compatibility code. RECOMMENDED ACTION: Fax was good. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 01 MNEMONIC: NO_DIALTONE DESCRIPTION: A dial command was issued with either a 'W' dial modifier or a wait for dialtone in byte 0 of the dial string. Fatal error. RECOMMENDED ACTION: Check cable connections and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 02 MNEMONIC: NO_CARRIER DESCRIPTION: A complete connection was not established. A NO_CARRIER error appears after the dial and before the Phase A completion. JT Fax compatibility. Fatal error. RECOMMENDED ACTION: Check phone number and retry call. Try enabling enhanced mode to determine the exact cause of error. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 03 MNEMONIC: BUSY DESCRIPTION: The called phone number was busy or a circuit was busy. Fatal error. RECOMMENDED ACTION: Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 04 MNEMONIC: PC_COMM_ERROR DESCRIPTION: Invalid response or command while in command state. Fatal error. RECOMMENDED ACTION: Check Host for problems. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 07 MNEMONIC: CLIP DESCRIPTION: An ASCII file was converted to T.4 data and a line was longer than 216 bytes (including spaces and tabs). This error only occurs during a FILETYPE - ASCII conversion during transmit. The error does not cause an abort to the transmit. Operational error. RECOMMENDED ACTION: Continue with fax or terminate call with a SOFT_RESET. Modify file before retransmitting. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 10 MNEMONIC: DIALING_ERROR DESCRIPTION: A dial command was issued and one of the characters in the dial string was invalid. Fatal error. RECOMMENDED ACTION: Check dial string and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 12 MNEMONIC: FONT_TOO_LARGE DESCRIPTION: The soft font file was too large for the soft font area. This error could also apply to the OEM code load. Fatal error. RECOMMENDED ACTION: Shorten soft font and retry. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 19 MNEMONIC: TRANSMIT_PAGE_ERROR DESCRIPTION: Transmit page was not received correctly. Operational error. RECOMMENDED ACTION: Retry call. Check remote fax machine and/or telephone line.. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 20 MNEMONIC: PHASE_A_ERROR DESCRIPTION: The transmitted Fax was not received correctly. Operational error RECOMMENDED ACTION: Retry call. Call Hayes Customer Service. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 21 MNEMONIC: NO_CNG_ERROR DESCRIPTION: No 1100 Hz CNG tone was detected from the Caller. If CNG detect is enabled this informs the user that a CNG was not detected. If CNG detect is not enabled then this error will not occur. Operational error. RECOMMENDED ACTION: Hang up the Fax call and use a voice connection. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 30 MNEMONIC: PHASE_C_ERROR DESCRIPTION: This a general error for Phase C. Operational error. RECOMMENDED ACTION: Retry Call. Call Hayes Customer Support. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 32 MNEMONIC: MAX_FRAME_ERR DESCRIPTION: The FAX handshake frame was too large for the JT Fax buffers. This is usually caused by a noisy line. Fatal error. RECOMMENDED ACTION: Check line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 35 MNEMONIC: LONG_LINE_ERROR DESCRIPTION: An error occurred in the reception of data. A line was received and decoded as being to long. This only occurs if the line is noisy. RECOMMENDED ACTION: Check phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 36 MNEMONIC: PERCENTAGE_ERROR DESCRIPTION: Percentage of data errors on receive versus the amount of correctly received data. Operational error. RECOMMENDED ACTION: Check line for connection or noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 40 MNEMONIC: PHASE_D_ERROR DESCRIPTION: A response from the remote machine was not received after transmit during the required time. Operational error. RECOMMENDED ACTION: Check line for connection or noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 60 MNEMONIC: DTMF_ERROR DESCRIPTION: A valid DTMF signal was not received. Operational error. RECOMMENDED ACTION: Check connection. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 61 MNEMONIC: NO_DTMF_TIMEOUT_ERROR DESCRIPTION: A manual DTMF command was issued. The activity timer expired with no DTMF. Operational error. RECOMMENDED ACTION: Check connection and line noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 62 MNEMONIC: VOICE_ERROR DESCRIPTION: An error occurred during the operation of a voice command. Fatal error. RECOMMENDED ACTION: Retry voice operation. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 122 MNEMONIC: HDLC_MIN_SIZE_ERROR DESCRIPTION: The HDLC frame of the T.30 handshake was shorter than expected. Invalid frame was received. Fatal error. RECOMMENDED ACTION: Check remote Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 123 MNEMONIC: HDLC_CRC_ERROR DESCRIPTION: The HDLC frame of the T.30 handshake did not have a good CRC. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 124 MNEMONIC: NEGOTIATING_TRAIN_DCN_ERROR DESCRIPTION: A DCN was received while the Fax was negotiating speed. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote Fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 125 MNEMONIC: HDLC_FRAME_TIMOUT_ERROR DESCRIPTION: A time-out occurred while waiting for the HDLC T.30 handshake. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote Fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 126 MNEMONIC: NO_DCS_REC DESCRIPTION: A DCS was not received from the caller. Caused by equipment malfunction at remote site. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 128 MNEMONIC: BAD_DIS_REC DESCRIPTION: A DIS received from the callee was in error. Possible remote equipment problems. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 129 MNEMONIC: BAD_TRAINING DESCRIPTION: An error occurred during the training phase of the call. Line quality does not support speeds available. Fatal error. RECOMMENDED ACTION: Check remote fax, phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 130 MNEMONIC: PHASE_B_ERROR DESCRIPTION: An error occurred during the negotiation phase of the call. This could be a failure to negotiate parameters. Fatal error. RECOMMENDED ACTION: Check type of remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 131 MNEMONIC: BAD_MPS_RESPONSE DESCRIPTION: In Phase D the negotiation for Multiple pages was in error. Operational error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 132 MNEMONIC: BAD_MCF_RESPONSE DESCRIPTION: A message confirmation after training did not occur. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 133 MNEMONIC: BAD_DCS_RESPONSE DESCRIPTION: A bad response from the DCS message caused this error. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 134 MNEMONIC: PHASE_D_ERROR DESCRIPTION: An error occurred during the operation of a voice command. Fatal error. RECOMMENDED ACTION: Check phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 135 MNEMONIC: NO_PC_ACK DESCRIPTION: A PC_ACK was not received in response to the LOAD_DATA_COMMAND. A 5 sec time-out error to the host. Operational error. RECOMMENDED ACTION: Fax may have errors. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 136 MNEMONIC: NO_DATA_RECEIVED DESCRIPTION: No data was received from the remote fax. Caused by a line drop or the remote fax abnormally terminated the call. RECOMMENDED ACTION: Check phone line. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 137 MNEMONIC: PAGE_ERROR DESCRIPTION: Page data was received in error from the remote fax. RECOMMENDED ACTION: Check phone line. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 138 MNEMONIC: SUCCESSFUL_RECEIVE DESCRIPTION: Fax was received successfully. RECOMMENDED ACTION: Ready for next fax transaction. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 243 MNEMONIC: ROCK_ERROR DESCRIPTION: This error indicates that the Rockwell chip is not responding. Operational error. RECOMMENDED ACTION: Turn off power and reinstall the board. If this does not correct the problem, contact Hayes Customer Service. ========================================================================== Appendix C Status Codes Status codes do not require a response from the Host. The code will reflect the state of the JT Fax 14400B Dual. It is not necessary to issue a PC_ACK command when receiving the status notification. However, the IDLE command in the Status Code field is recommended because it incorporates a more fault-tolerant coding algorithm. Status codes may be used to provide additional information during a fax call procedure. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 01 MNEMONIC: RING DESCRIPTION: A ring was detected during the dialing of number. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 02 MNEMONIC: SUBSCRIBER_INFO DESCRIPTION: CSI/TSI info is available in the buffer area. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 0E MNEMONIC: PHASE_E_START DESCRIPTION: Start of T.30 Phase E. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 10 MNEMONIC: PHASE_A_START DESCRIPTION: Phase A begins call establishment. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 11 MNEMONIC: PHASE_B_START DESCRIPTION: Phase B starts the initial negotiation of speed and format. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 12 MNEMONIC: PHASE_C_START DESCRIPTION: Start of Phase C for fax transmission. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 13 MNEMONIC: PHASE_D_START DESCRIPTION: Start of Phase D and post message handling. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 20 MNEMONIC: NEGOTIATING_SPEED DESCRIPTION: Speed negotiation is occurring during Phase B. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 21 MNEMONIC: CONNECT DESCRIPTION: Indicates that all handshaking is complete and fax data will be transmitted. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 22 MNEMONIC: VOICE_MODE DESCRIPTION: Notification of automatic voice mode is entered. ========================================================================== Appendix D T.30 Phase Descriptions Fax communication occurs in phases. As defined by the ITU-T the phases are: ---------------------------------------- Phase A Call Establishment Phase B Pre-message Procedure Phase C In-message Procedure Phase D Post Message Procedure Phase E Call Release The following sections describe the phases as they relate to the JT Fax 14400B Dual in the default configuration. ************************************************************************** Phase A The calling fax (caller) goes "off hook" and listens for dialtone. After dialtone has been detected, dialing the phone number starts. The dialing call progress includes the detection of the ring and busy signals. In addition to the call progress, the T.30 1100-Hz CNG tone is transmitted with a cycle time of 0.5 seconds on and 3 seconds off. Transmission of the CNG cycle continues until the receiving fax (callee) transmits a T.30 2100 Hz CED. Once the CED is detected, the caller waits for a silent period. The silent period terminates Phase A for the caller. The callee detects a "ring" signal and goes to off-hook. 1.8 seconds after going "off hook", the callee transmits the 2100-Hz CED for 2.8 seconds. The ending of the CED terminates Phase A for the callee. ************************************************************************** Phase B After a silent period of 75 milliseconds the receiver transmits a CSI, NSF and a DIS frame. The DIS frame contains the negotiating parameters. Once the DIS is transmitted, the receiver looks for a response from the caller. During a 3.5 second time-out period, the receiver receives a DCS frame from the caller. Once a mode has been selected from the DCS frame, the caller transmits a training sequence 75 milliseconds later. If the training sequence is within error parameters, the receiver transmits a TCF. The TCF marks the end of Phase B for the receiver. The caller detects a silent period and starts the pre-message handshake. The handshake begins with the reception of the DIS frame. After the reception of the DIS frame, the TSI and DCS frames are transmitted. The caller sends a training signal for 75 milliseconds after sending the DCS frame. The training signal has a duration of 1.5 seconds. If the signal was received without errors by the receiver, a CFR frame is received. The reception of the CFR frame marks the end of Phase B for the caller. ************************************************************************** Phase C The caller transmits the Fax message 75 milliseconds after the CFR. The format of the message is T.4 Huffman encoded data. A RTC sequence will be sent at the end of the page to signal the receiver to transition into Phase D. The receiver receives the Fax message and examines the T.4 codes for errors. A "TIC" mark will be printed in the left most column to signify a line error. When a RTC is received, the receiver transitions into Phase D. ************************************************************************** Phase D The caller transmits one of the following: EOM MPS to start the procedure to re-enter Phase C EOP frame to proceed to Phase E. After receipt of a MCF from the receiver, the caller goes to either Phase E or re-enters Phase C. To re-enter Phase C, the caller transmits another train sequence. The caller looks for a confirmation of the retrain in the form of a RTP frame. Once an RTP is received, the caller re-enters Phase C. Exiting to Phase E requires only the reception of a MCF. The receiver waits for a EOM, MPS or EOP frame. Upon receiving a MPS or EOM frame, the receiver transmits a MCF. After transmitting the MCF frame, the receiver looks for a training signal. If the signal is within error limits, the receiver transmits a CFR. Transmitting the CFR marks the end of Phase D and the receiver re-enters Phase C. If an EOP frame was received, the receiver transmits a MCF and proceeds to Phase E. ************************************************************************** Phase E The caller sends a DCN frame to the receiver and disconnects the telephone line. The receiver waits for the reception of a DCN frame. After receiving a DCN, the receiver disconnects the telephone line. ========================================================================== Appendix E Buffer Area Layout The BUFFER_AREA is a multipurpose area used in several commands. The following chart defines the buffer area during different stages of a Fax operation. Operation Layout -------------------------------------------------------------------------------- XMIT - TelephoneNumber BYTE 0 - 60 used for phone number. XMIT - Header BYTE 0 - 19 used for TSI/CSI information (optional if TSI/CSI command used) BYTE 55 used for page number; followed by space BYTE 56-58 padded with spaces. All other operations require the following: BYTE 0 location WORD 0 - 1 location in INTEL Format LONG 0 - 3 location in INTEL Format The buffer area is also used to transmit default CSI/TSI information. A zero in buffer [0] prohibits the buffer area CSI/TSI data from being transmitted. ========================================================================== Appendix F OEM Code Guidelines JT Fax provides a method to off-load code from the Server and run the code in the JT Fax while JT Fax is idle. Use the following guidelines to offload code: 1. The code must be in 8088 assembly language. 2. Code segment must be 0H. 3. Stack frame and registers must be preserved. 4. Code size including data must not be greater than 28 KB. 5. The starting address for code must be 0:8800H. 6. Soft fonts are not available while using OEM code. 7. Upon entry into OEM code the following registers contain values es: Points to the JT Fax code segment ax: Points to the OEM entry point for executing JT Fax commands bx: Points to timer service routine for user timers cx: Points to the OEM exit point ss: Points to Stack Segment sp: Points to Stack pointer. 8. Code must be in binary form. 9. Timer interrupts continue to run. ========================================================================== Appendix G Command Codes The following chart presents the JT Fax commands in numerical order by command code. Code Command --------------------------------------------- 00H IDLE_STATUS 01H XMIT_COMMAND 02H BOARD_ACK_STATUS 03H LOAD_DATA_COMMAND 04H LOAD_FONT_COMMAND 05H PC_ACK 06H ERRFLAG 08H EOPFLAG 0FH EOTFLAG 10H MANUAL_REC_COMMAND 10H RECVINIT 20H SET_CARRIER_COMMAND 21H STATUS_COMMAND 22H REC_PCX_ON_COMMAND 23H REC_PCX_OFF_COMMAND 24H ON_HOOK_COMMAND 25H OFF_HOOK_COMMAND 26H FAX_MODE_COMMAND 27H MODEM_MODE_COMMAND 28H DTMF_ON_COMMAND 29H DTMF_OFF_COMMAND 2AH DTMF_ON_TIME_COMMAND 2BH DTMF_OFF_TIME_COMMAND 2CH DTMF_DIAL_COMMAND 2DH PULSE_DIAL_COMMAND 2EH NO_BUSY_COMMAND 2FH BUSY_COMMAND 30H HARDWARE_RESET_COMMAND 31H SOFTWARE_RESET_COMMAND 32H PULSE_INTER_COMMAND 33H RESET_DATA_PUMP 34H CNG_ON_COMMAND 35H CNG_OFF_COMMAND 36H CED_ON_COMMAND 37H CED_OFF_COMMAND 3AH PULSE_BREAK_COMMAND 3BH PULSE_MAKE_COMMAND 3EH SPEAKER_ON_COMMAND 3FH SPEAKER_OFF_COMMAND 4EH EXTEND_STATUS_ON _COMMAND 4FH EXTEND_STATUS_OFF_COMMAND 50H FAX_144_MODE_ON_COMMAND 51H FAX_144_MODE_OFF_COMMAND 52H ENHANCED_MODE_ON _COMMAND 53H ENHANCED_MODE_OFF_COMMAND 54H SET_USER_TSI_COMMAND 55H SET_USER_CSI_COMMAND 5FH SETUP_VOICE_COMMAND 60H CNG_DETECT_ON_COMMAND 61H CNG_DETECT_OFF_COMMAND 62H PLAY_START_COMMAND 63H PLAY_END_COMMAND 64H REC_START_COMMAND 65H REC_STOP_COMMAND 66H EOVFLAG 67H GAIN_UP_COMMAND 68H GAIN_DOWN_COMMAND 69H SET_GAIN_COMMAND 6AH SET_SAMPLE_RATE_COMMAND 6BH SET_SLEW_RATE_COMMAND 6CH SILENCE_DETECTED_STATUS 6FH SET_ACT_TIMER_COMMAND 70H DTMF_DETECT_STATUS 71H RETURN_TO_DATA_COMMAND 72H RETURN_TO_COMMAND 73H DTMF_DETECT_ON_COMMAND 74H DTMF_DETECT_OFF_COMMAND 75H GET_DTMF_COMMAND 76H EODFLAG 77H ONLINE_VOICE_REC_ON_COMMAND 78H ONLINE_VOICE_REC_OFF_COMMAND 79H OEM_CODE_COMMAND 7AH OEM_LOAD_COMMAND 0F0H GOOD_INIT 0F1H BAD_RAM 0F2H BAD_ROM 0FFH BOARD_SYNC_COMMAND ========================================================================== Appendix H References CCITT Blue Book, Volume VII - Facscicle VII.3, "Terminal Equipment and Protocols for Telematic Services", Recommendations T.0-T.63, IXth Plenary Assembly, Melbourne, November 14-25,1988. Rockwell R144EFX bps MONOFAX Modem Designers Guide, Document No. 29800N46, November 1990. FAX, "Digital Facsimile Technology and Applications", McConnell, Bodson and Schaphorst, Second Edition, Artech House, Norwood, MA, 1992. ========================================================================== Appendix I Hayes Customer Service To obtain Warranty/Guarantee Service, call or write to the appropriate Hayes Customer Service location listed below for a return authorization number, and then return the product to that location along with (a) the return authorization number, (b) proof of date of purchase, and (c) your mailing address and telephone number, postage prepaid. Please note that if the product is returned without proof of purchase or after the expiration of the warranty/guarantee coverage period, Hayes will, at its option, repair or replace the product and charge you the then effective Hayes price for out-of-warranty/guarantee service of the product, unless Hayes has discontinued the manufacture or distribution of the product because of technical obsolescence. Americas Region Hayes Microcomputer Products, Inc. Attention: Customer Service P.O. Box 105203 Atlanta, Georgia 30348-5203 Telephone: (404) 441-1617 Telefax: (404) 449-0087 Telex: 703500 HAYES USA Online with Hayes BBS: (404) HI-MODEM or (800) US-HAYES and Hayes forums on CompuServe (GO HAYES) and GEnie information services. Note: If the carrier requires a street address, direct returns to the following address: Hayes Microcomputer Products, Inc. Attention: Customer Service 5953 Peachtree Industrial Blvd. Norcross, Georgia 30092 Asia Region Hayes Microcomputer Products, Inc. 39/F, Unit B, Manulife Tower 169 Electric Road, North Point, Hong Kong Telephone + 852 887-1037, Telefax + 852 887-7548 Telex: 69381 HAYES HX Online with Hayes BBS: + 852 887-7590 Note: This version of the "JT Fax 14400B Dual Application Developer's Guide" is a special version edited for bulletin-board downloading. As a plain ASCII character file, it therefore cannot contain any of the graphic elements provided in the printed version. The following graphic characters are used to denote the start of Chapters, 1st Level Headings, 2nd Level Headings, and Table Headings: Chapter Headings are preceded by: ========================================================================== 1st Level Headings are preceded by: ************************************************************************** 2nd Level Headings are preceded by: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Table Headings are separated from table listings by: ----------------------------------------------------------------------------- ============================================================================= CHANGE RECORD: Original ========================================================================== Chapter 1 Introduction The Hayes JT Fax 14400B Dual is a board level Fax product developed specially for "high end" server environments where throughput is a major concern. The JT Fax 14400B Dual contains two independent 14.4 KBPS Group 3-compatible fax modems, providing an interface directly to the PC ISA bus. Both fax modems interface to the host software at the speed of the ISA bus specification (i.e., 4-8 MHz). Data transfer between JT Fax and the host software can occur at the MBPS rate. In comparison, most serial based facsimile units can only transfer data in the KBPS range. Considering speed alone, the JT Fax 14400B Dual is ideal for server applications. Additional functionality is added to decrease the burden on the application software and thus the host computer. These features include: automatic T.4 encoding and T.30 handshakes receive Fax real time T.4 to PCX type 3 conversion Fax speeds of 2400 to 14400 BPS digital voice transmit and receive record/playback DTMF transmit and detection. The JT Fax 14400B Dual is designed with a simple high-speed interface. The interface does not require that the application developer know T.4 encoding or T.30 handshake protocols for ITU-T (formerly CCITT) Group 3 facsimiles. The JT Fax 14400B Dual is capable of performing all the encoding and decoding required to complete a fax call. However, if the application developer is comfortable with the encoding and decoding of the T.4 formatted data, the JT Fax 14400B Dual is versatile enough to handle this encoded data. This Application Developers Guide describes the programming procedure that comprises the JT Fax 14400B Dual Application Programming Interface (API). A list of the functions is provided along with the necessary procedure to implement the functions. Throughout, the guide presents example routines using the elements of the functions to assist the programmer with the application. Included in Appendix G is a quick reference guide of the Command Codes indexed by alphabetical listings and by numeric listing. Also available with the JT Fax 14400B Dual is the developers toolkit, which contains working Fax software with source code. Familiarity with "C" and assembly language is required to use the toolkit. Contact Hayes Customer Service for information about obtaining the JT Fax Toolkit. Distinction: JT Fax 14400B Dual is the product described in this Guide. JT Fax is a standard technology in the PC fax industry. The term fax refers to the facsimile technology. ************************************************************************** Manual Organization This Application Developer's Guide is arranged as follows: This Application/Developers Guide is arranged as follows: Chapter 1 Introduction describes the product features and the contents of the remainder of this Guide. Chapter 2 Theory of Operation briefly presents the hardware and firmware used to develop the JT Fax 14400B Dual. Chapter 3 JT Fax Toolbox describes the concepts, constructs, and structures necessary to develop API software for the JT Fax 14400B Dual. Chapter 4 Voice and DTMF Detect describes the voice and DTMF operating modes available with the JT Fax 14400B Dual. Chapter 5 Command Reference presents an alphabetical listing of all command codes available in the JT Fax API. Chapter 6 Shared Memory Interface Description introduces functions, status codes, return codes and data that is passed through the Shared Memory Interface. Chapter 7 File Formats describes the JT Fax file conversion formats. Appendix A ITU-T T.4 Huffman Encoding describes the T.4 Huffman Encoding process used by JT Fax. Appendix B Return Codes describes the timing JT Fax requires to read a return code. The appendix also includes a summary of the JT Fax Return Codes. Appendix C Status Codes provides a summary of the JT Fax Status Codes. Appendix D T.30 Phase Descriptions describes fax call processing techniques used by JT Fax. Appendix E Buffer Area Layout describes the Buffer Area used by several of the JT Fax commands. Appendix F OEM Code Guidelines defines the methodology JT Fax employs to offload code from a fax server. Appendix G Command Codes provides a complete listing of the JT Fax Command Codes in numerical order. Appendix H References lists references used in the development of the product. Glossary Glossary defines terms used in this guide. ************************************************************************** Definitions The following terms are used in this documentation: Term Definition -------------------------------------------------------------------- Host The Program written to interface with the JT Fax JT Fax, Fax The JT Fax 14400B Dual board API Application Programming Interface API Block Shared memory window BPS Bits per second WORD 2 bytes LONG 4 bytes Additional definitions are listed in the Glossary. ========================================================================== Chapter 2 Theory of Operation The JT Fax 14400B Dual board includes two, 14400-baud, Group 3 facsimile modems with voice and DTMF capabilities. The facsimile modems are divided into two independent and separate parts, Fax A and Fax B. Each Fax has an independent processor, PC address interface, data pump and telephone line interface (TELCO) section. Both modems share a single PC bus interface and a speaker connection. The speaker volume is controlled by a potentiometer on the back of the unit. Speaker on/off controls are available for both FAX A and B through functions. Fax A has the additional feature of a microphone jack. The microphone jack is provided for voice messaging applications. ************************************************************************** Shared Memory Interface - API Block The JT Fax interfaces to the PC through a shared memory interface. Access to the shared memory API Block is accomplished by two steps. Step 1: Set the memory base address set with the DIP switch (see the Hayes JT Fax 14400B Dual Installation Guide) on the JT Fax 14400B Dual board. Step 2: Scan the memory between addresses 640k and 1M for the keyword "ASHER". Once the keyword is found, the keyword address marks the beginning memory address of the JT Fax API Block. The memory address is "blocked out" in a 4 Kb section. The starting address is Fax A. Fax A utilizes the first 2 Kb for an API Block. The adjacent 2K of memory is allocated to Fax B's API Block. The shared memory interface requires no interrupt vectors to the PC, no serial port, and no drivers. The application communicates with the JT Fax shared memory using a polled interface method. Polling activation and frequency is host dependent and is determined by the application. The handshake required to communicate with JT Fax 14400B Dual utilizes the JT Fax protocol structure. The JT Fax protocol is an ACK-ACK type protocol. All data and commands use this protocol. Chapter 5 provides protocol examples for each command. The API Block contains memory windows for command protocol, control, configuration, and data. The Shared Memory Interface (see Chapter 6) details the API block. The API block's most important asset is the 1960 byte buffer for transmitting and receiving fax data. This allows additional time for the host to perform other activities. In addition, the JT Fax has a 9K buffer for transmitting and receiving Fax data. The transmit and receive capability of the JT Fax 14400B Dual board offers two modes of operation for the host: Manual and Automatic. Manual requires the host to start the initial call/answer procedure by issuing commands that force the Fax into the "off-hook" condition. The remainder of the call/answer is automatic. In the Automatic procedure, the call/answer is handled by issuing the appropriate transmit and receive commands. The "off-hook" condition is controlled by the Fax. ************************************************************************** Transmitting Transmitting with the JT Fax 14400B Dual is straight-forward since the modem automatically executes the T.4 and T.30 handshake. The host is only responsible for the phone number, data to be transmitted, and the simple handshake protocol to JT Fax and the host. The following is a high level Program Design Language (PDL) example demonstrating a transmit. send SYNC_COMMAND (only after power up ) wait for response GOOD_INIT write to configure API block write phone number in BUFFER_AREA send XMIT_COMMAND wait for response BOARD_ACK_STATUS write header information into BUFFER_AREA send PC_ACK wait for response LOAD_DATA_COMMAND write data to DATA_AREA send PC_ACK continue to write data till END_OF_FILE is reached send EOT_FLAG wait for response BOARD_ACK_STATUS check ret_code TRANSMIT_SUCCESSFUL send PC_ACK A C programming language example of the transmit procedure can be found in the JT Fax Toolkit found on the Online with Hayes BBS in the file JT_TX.C. The JT Fax 14400B Dual can have a manual dial if required. The host is required to dial the telephone number and place an "M" in the first byte of the automatic dial string. The "M" tells the JT Fax not to dial a telephone number. The JT Fax continues with the standard call progress. The manual handshake is identical to the automatic handshake. ***************************************************************************** Receiving The receive procedure for JT Fax 14400B Dual requires the host to monitor the Fax for an indication of a call. The host sets the number of rings to allow before answering in the RING_COUNT field of the API block. Answering the call and T.30 handshakes are automatic. Once the RING_COUNT is matched, the host receives a RECVINIT in the COMMAND field. The RECVINIT is the notification that an incoming call is being answered. After the receiver initializes, the Fax issues a LOAD_DATA_COMMAND. The host should retrieve the data and respond with a PC_ACK. The same handshake continues until the last byte of data for the page or a transmission. To end transmission, the Fax issues an EOT command to the host. The EOT command concludes the handshake for the receive. The following is a PDL example demonstrating a fax receive: send SYNC_COMMAND ( only after power up ) wait for response RECVINIT send PC_ACK wait for response LOAD_DATA_COMMAND retrieve data from DATA_AREA send PC_ACK continue procedural handshake until response EOT_FLAG retrieve data from DATA_AREA send PC_ACK wait for response BOARD_ACK_STATUS check RET_CODE SUCCESSFUL_RECEIVE send PC_ACK A C programming language example of the receive procedure can be found in the JT Fax Toolkit found on the Online with Hayes BBS under the file JT_RX.C. The manual receive allows the host to determine when and if the call will be answered. Rings are detected by an outside source or by the extended status code "RING". When the required number of rings is reached, the host issues the MANUAL_RECEIVE_COMMAND. Note: To disable automatic detection, it is required to set RING_COUNT to 0FH. The remaining receive handshake procedure is identical to the automatic answer mode. ========================================================================== Chapter 3 JT Fax Toolbox This section establishes the concepts, constructs, and structures necessary to develop API software. The items in capital letters are the specific functions whose corresponding command values are found in the JT Fax 14400B command set in Chapter 5. The JT Fax 14400B Dual uses two contiguous memory blocks, each of which is 2K bytes long. The API Blocks, functions, return codes and status codes are discussed in separate sections of this Guide. In those Chapters, individual items are in alphabetical order for convenience. In the following sections, the items are grouped by function to clarify what functions are available. ************************************************************************** API Block - Shared Memory The API entry point for the JT Fax 14400B is the user selectable shared memory window. For backward compatibility, most of the elements of this structure are identical to the JT Fax 9600B. The only changes implemented to this structure are related to the new features of the JT Fax 14400B Dual. The changes are in the field previously defined as RESERVED and in one field not used in 9600B (RESET_PC). The new fields are STATUS_CODE, RCV_FILE_TYPE and RCV_LINES. The following chart describes the available fields: Offset Length Name Usage/Description ----------------------------------------------------------------------- 0000H-0005H ID Location of board address 0005H-0001H COMMAND Commands and Status 0006H-0001H RING_COUNT Ring to answer on 0007H-0001H CALL_MODE Transmit / Receive 0008H-0001H FILE_TYPE ASCII, PCX, JT Fax 0009H-0001H XMIT_FONT Resolution, Font number 000AH-0001H MIN_PAGE Force 11 inch page flag 000BH-003DH BUFFER_AREA Phone numbers & headers 0048H-0002H SECONDS Length of connection 004AH-0001H SPEAKER On, off, on till connect 004BH-0001H RET_CODE Completion code 004CH-0002H PAGES Number of pages sent 004EH-0002H DATA_LEN Length of valid data 0050H-0001H BAUD_RATE 2400, 4800, 7200, 9600, 12000, 14400 baud 0051H-0001H RESET_BOARD Reset the board 0052H-0001H STATUS_CODE Extended status 0053H-0001H LINE_COUNT Number of lines transmitted 0054H-0001H RCV_FILE_TYPE Receive file type 0055H-0002H RCV_LINE Lines per page received 0057H-0001H RESERVED Not used at this time 0058H-07A8H DATA_AREA Used for file data Note: H indicates hexadecimal code. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 9600 Compatibility For backward compatibility, the API set published with the JT Fax 9600B has been fully implemented. These functions use the Command field and are provided here for reference. Status Description ------------------------------------------------------------------ EOTFLAG End of transmission EOP End of page INIT Initialize the board LOAD_DATA_COMMAND Begin transmit of Fax LOAD_FONT_COMMAND Load soft font RECVINIT Begin reception of Fax XMIT_COMMAND No transmission in progress The JT Fax 9600B also included some status and PC handshake codes in the Command field. These are fully implemented for backward compatibility. The codes are provided here for reference. Command Description ------------------------------------------------------------------------------ BAD_RAM RAM test failed BAD_ROM ROM test failed BOARD_ACK_STATUS Board returns when function complete BOARD_SYNC_COMMAND Transition from initialization to command ERROR An error has occurred GOOD_INIT Board passed self test IDLE_STATUS No transmission in progress PC_ACK PC returns when function is complete +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 14400B Facsimile API The JT Fax 14400B API set is an enhanced version of the 9600B API set. All of the 9600B functions are supported. The following chart lists the facsimile API commands supported: Command Description ------------------------------------------------------------------- EOTFLAG End of transmission EOP_FLAG End of page BOARD_SYNC_COMMAND Initializes the board LOAD_DATA_COMMAND Begin transmit of Fax LOAD_FONT_COMMAND Load soft font RECVINIT Begin reception of Fax XMIT_COMMAND No transmission in progress +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 14400B Configuration API The JT Fax 14400B Dual Configuration functions were not available in the JT Fax 9600B command set. These configuration functions allow the host to customize the operation of the JT Fax 14400B Dual board. The following chart lists the configuration commands: Command Description ---------------------------------------------------------------------- BUSY_COMMAND Look for busy DTMF_OFF_TIME_COMMAND DTMF off time DTMF_ON_TIME_COMMAND DTMF on time ENHANCED_MODE_OFF_COMMANDDisable 14400B modes ENHANCED_MODE_ON_COMMAND Enable all 14400B modes EXTEND_STATUS_OFF_COMMAND Disable extended status EXTEND_STATUS_ON_COMMAND Enable extended status FAX_144_MODE_OFF_COMMAND Disable receive 14400 kbps FAX_144_MODE_ON_COMMAND Enable receive 14400 kbps FAX_MODE_COMMAND Enable JT Fax Mode (testing) MODEM_MODE_COMMAND Disable Fax and enable Modem NO_BUSY_COMMAND Do not look for busy PULSE_INTER_COMMAND Interdigit time REC_PCX_OFF_COMMAND Disable receive PCX format REC_PCX_ON_COMMAND Enable receive PCX format SET_CARRIER_COMMAND Time to wait for carrier STATUS_COMMAND Enable the 14400B status USER_CSI_COMMAND Initializes CSI USER_TSI_COMMAND Initializes TSI +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Voice Commands The Voice mode allows the recording and playback of non-compressed voice messages. During Phase A of a call, the Voice mode is entered after a user definable period of silence. (See Appendix D for a detailed description of JT Fax fax phases). After a period of silence, the user is notified of the "silent period" (SILENCE_DETECTED status) and is provided with a number of options. In addition, DTMF detect is automatically enabled. Command Description ------------------------------------------------------------------------------- CLEAR_VOICE_COMMAND Disables voice mode GAIN_DOWN_COMMAND Decrements gain increment by 1 dB (See SET_GAIN_COMMAND) GAIN_UP_COMMAND Increments the gain increment by 1 dB (See SET_GAIN_COMMAND) PLAY_END_COMMAND End voice playback PLAY_START_COMMAND Start voice play back RECORD_START_COMMAND Start recording voice RECORD_STOP_COMMAND Stop recording voice RETURN_TO_COMMAND Return to command state from voice mode RETURN_TO_DATA_COMMAND Return to Fax state from voice mode SET_ACT_TIMER_COMMAND Sets the time to wait for CNG tone SET_GAIN_COMMAND Sets the gain increment SET_SLEW_RATE_COMMAND Sets the "fall off rate" for voice signal SET_VOICE_MODE_COMMAND Enables voice mode and CNG detect TX_DTMF_COMMAND Transmit DTMF tones +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Utility Functions Some additional functions were added to aid in testing and debugging. The utility functions provide some of the low-level commands (primitives) used by the JT Fax 14400B to operate the hardware components. The JT Fax 14400B must be in FAX_MODE before any of the utility commands can be used. Caution: Some of these commands change the configuration of the Data Pump. If a change occurs to the data pump configuration, then a hardware reset will restore the values. Command Description ------------------------------------------------------------------ CED_OFF_COMMAND Turn off CED tone CED_ON_COMMAND Turn on CED tone CNG_OFF_COMMAND Turn off CNG tone CNG_ON_COMMAND Turn on CNG tone DTMF_DIAL_COMMAND Dial a DTMF number DTMF_OFF_COMMAND Turn off a DTMF tone DTMF_ON_COMMAND Turn on a DTMF tone OEM_CODE_COMMAND Execute OEM code onboard OEM_LOAD_COMMAND Load OEM code onboard OFF_HOOK_COMMAND Connects phone line ON_HOOK_COMMAND Disconnects phone line PULSE_BREAK_COMMAND Sets the Break Time PULSE_DIAL_COMMAND Pulse dial a number PULSE_MAKE_COMMAND Sets the Make Time RESET_DATA_PUMP_COMMAND Resets the data pump SPEAKER_OFF_COMMAND Turn off the speaker SPEAKER_ON_COMMAND Turn on the speaker ************************************************************************** Return Codes The return codes are enhanced for the JT Fax 14400B. In addition to the old JT Fax 9600B error codes, enhanced codes are available for more accurate problem determination during a FAX call. The standard JT Fax 9600B return codes include two status codes, and the remaining codes are error return codes. The return codes are listed in the following table. Error Code Description -------------------------------------------------------------------------------- BAD_DCS_RECEIVE Error in DCS data BAD_DIS_RECEIVE Bad DIS was received BAD_MCF_RESPONSE Messages not confirmed BAD_MPS_RECEIVE Error in MPS frame BAD_TRAINING Errors received in training BUSY Busy signal was detected CLIPPED ASCII to T4 line too long NO_CARRIER No connection was established NO_DATA_RECEIVED No data received within time limit NO_DIALTONE No dialtone reported in time limit NO_PC_ACK No PC acknowledge within time limit PAGE_ERROR Error in transmit page or receive page PHASE_D_ERROR Error occurred in Phase D SUCCESSFUL_RECEIVE Receive was successful SUCCESSFUL_TRANSMIT Transmit was successful The enhanced mode can be enabled/disabled by the following commands: ENHANCED_MODE_ON ENHANCED_MODE_OFF (default). The additional enhanced return codes are listed in the following table. Error Code Description ------------------------------------------------------------------------------ ABORT_ERROR Callee aborted call DCN_RECEIVED_ERROR Unexpected DCN received DIALING_ERROR DTMF digit in error DTMF_ERROR Tone was not DTME DTMF_TIMEOUT_ERROR DTMF tone was not available during timeout FAXIT_ERROR Error during fax transmission FONT_TOO_LARGE_ERROR Soft font too large HDLC_CRC_ERROR HDLC frame had bad CRC HDLC_FRAME_TIMEOUT_ERROR No HDLC frame in time limit HDLC_MIN_SIZE_ERROR Facsimile control frames had incorrect size LONG_LINE_ERROR Line too long in ASCII to Huffman MAX_FRAME_ERROR Facsimile control frames had incorrect size NEGOTIATING_TRAIN_DCN_ERROR DCN received during training NO_CNG_ERROR No CNG detected in received mode NO_RECEIVE_DCS_ERROR No DCS received PERCENTAGE_ERROR Errors in line exceeded percentage limits PHASE_A_ERROR Error occurred in Phase A PHASE_B_ERROR Error occurred in Phase B PHASE_C_ERROR Error occurred in Phase C PHASE_E_ERROR Error occurred in Phase E PHASE_E_TIMEOUT Time-out during handshake Phase E ROCK_ERROR Error in DSP chip VOICE_ERROR Error in voice procedures ************************************************************************** Status Codes In addition to the enhanced error codes, enhanced status messages are available. Since status codes do not require a response or action, the codes are reported in the STATUS_CODE. Status Description ---------------------------------------------------------- CONNECT Connection established NEGOTIATING_SPEED Negotiating connect speed PHASE_A_START Phase A started PHASE_B_START Phase B started PHASE_C_START Phase C started PHASE_D_START Phase D started RING Ring detected SUBSCRIBE_INFO CSI/TSI information available in buffer area ========================================================================== Chapter 4 Voice and DTMF Detect The voice and DTMF detect option of the JT Fax 14400B Dual has a Manual and an Automatic operating mode. Automatic requires a connection while Manual may be initiated in an off- line or on-line state. The Automatic DTMF/VOICE detection for JT Fax 14400B Dual detects DTMF/VOICE during the Phase A (answer mode) of a call. Enable the CNG_DETECT_ON_command for the automatic option. To disable the automatic mode, issue the CNG_DETECT_OFF_COMMAND. After a user-defined period of silence (no CNG tone), the JT Fax 14400B Dual enters DTMF/VOICE mode. During this stage, the user has the following options: detecting DTMF tones returning to data mode and continuing to answer Fax calls (i.e., send CED) executing voice commands returning to command state. The Manual mode only requires setting the options for DTMF/VOICE and the specific command to be issued. Manual mode is independent of connection status. ************************************************************************** DTMF Detect Automatic DTMF detection is accomplished when the JT Fax 14400B Dual is in the DTMF/VOICE on-line detect mode. The JT Fax 14400B Dual automatically searches for DTMF tones. If a DTMF tone is found, the tone value is placed in the first byte of the Data_Area and a DTMF_DETECT_STATUS is written into the API command block at location COMMAND. The JT Fax 14400B Dual waits until the Host retrieves the DTMF value and issues a PC_ACK command before searching for more DTMF tones. The manual option provides the capability of entering DTMF detect mode from command state. This is independent of connect status. The JT Fax 14400B Dual operates similarly to the automatic DTMF detect. The difference is that the Host must cancel the DTMF detect search with an EOD command. The JT Fax 14400B Dual issues a BOARD_ACK_COMMAND in response. The option for CNG_DETECT does not have to be enabled for the manual DTMF detect. However, DTMF detect option does need to be enabled for manual and automatic operation. The DTMF tones detected and reported to the Host are: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *, #, A, B, C, D. Commands available for Automatic operation are: CNG_DETECT_ON_COMMAND DTMF_DIAL_COMMAND DTMF_DETECT_STATUS RETURN_TO_DATA_COMMAND RETURN_TO_COMMAND Commands available for manual operation include: DTMF_DETECT_ON_COMMAND EOD DTMF_DETECT_STATUS The following is an example of automatic DTMF detect: (Connecting Call) . . . Wait for Response SILENCE_DETECT_STATUS Check Status VOICE_MODE . . . Wait for Response DTMF_DETECT_STATUS Retrieve Byte Code from Data_Area Send PC_ACK . . . (Continuing in DTMF/Voice Mode) The following is an example of manual DTMF detect: Send GET_DTMF_COMMAND Wait for Response BOARD_ACK_STATUS Wait for Response DTMF_DETECT_STATUS Retrieve Byte Data from Data_Area Send PC_ACK . . . (When Finished) Send EOD_FLAG Wait for Response BOARD_ACK_COMMAND Send PC_ACK ************************************************************************** Voice Mode Voice mode can be entered when you are connected or disconnected to the phone line. When connected, voice recording is provided from the telephone line to either Fax A or Fax B. In the disconnected mode, input is provided by a microphone on Fax A only. In automatic voice mode, DTMF and voice are enabled. During Phase A of the call, the Voice mode is entered after a user definable period of silence. After the period of silence, the Host is notified of the "silent period" (SILENCE_DETECTED status) and starts to execute options similar in functionality to the Class 2 voice commands. The options in Automatic mode are: Command Description ---------------------------------------------------------------------------------- CNG_DETECT_ON_COMMAND Enables voice mode and CNG detect CNG_DETECT_OFF_COMMAND (default) SET_ACTIVITY_TIMER Sets the time to wait for CNG tone GAIN_UP Increases the gain increment by 1 dB GAIN_DOWN Decrements gain increment by 1 dB SET_GAIN Sets the gain increment SET_SLEW_RATE Sets the "fall-off rate" for voice signal RETURN_TO_COMMAND Returns to command state from voice mode RECORD_START Starts recording voice RECORD_STOP Stops recording voice PLAY_START Starts voice play back PLAY_END Ends voice playback DIAL_DTMF_COMMAND Transmits DTMF tones Manual voice mode requires the host to issue the SETUP_VOICE_COMMAND from command state. Once the command is received by the FAX, the JT Fax 14400B Dual enters the VOICE/DTMF mode and all commands available for Automatic mode are applicable except the RETURN_TO_DATA_COMMAND. During the actual playing and recording of a message, the DTMF detection is not available. This is due to the half-duplex nature of the 144EFX chip and different modes required for DTMF DETECT and VOICE mode. However, after the message is sent DTMF detection may occur. Voice data format during record and playback is in a raw binary 8-bit resolution format. The following PDL example is for automatic voice playback: (Initiate Call) . . . Wait for Response SILENCE_DETECT_STATUS Send PC_ACK Write Voice Data in Data_Area Send Play Start Wait for Response LOAD_DATA_COMMAND . . . (Finish Data) SEND_EOV_FLAG Wait for Response BOARD_ACK_COMMAND Send PC_ACK . . . (Continue with Voice/DTMF loop) Voice playback is completed. The following example is for manual record off-line. Step 1: Attach the microphone to the Fax A microphone jack. Step 2: Start the voice recording process: Send REC_START_COMMAND Wait for Response BOARD_ACK_STATUS Wait for Response LOAD_DATA_COMMAND Retrieve voice data from Data_Area Send PC_ACK . . . Wait for Response EOVFLAG Send PC_ACK This completes the voice recording. To use Manual Voice Recording, use the previous procedure, but replace the REC_START_COMMAND with the MANUAL_REC_COMMAND. ========================================================================== Chapter 5 Command Reference This Chapter includes detailed descriptions of the JT Fax command set. The point of reference is from the HOST side for all commands. The command descriptions are in the following format: Characteristic Description COMMAND: Specific function or status mnemonic CODE: Hex code CATEGORY: Fax, Status, Configuration, Utility, Voice DIRECTION: Host to JT Fax or JT Fax to Host INPUT to JT: Location in API block. Direction: JT Fax OUTPUT from JT: Location in API block. Direction: Host DEFAULT: Default for status commands DESCRIPTION: Detailed description of command EXAMPLE: A flow language example RELATED FUNCTIONS: Any other functions that might be of use The commands are presented in alphabetical order. Note: A PC_ACK is required after a BOARD_ACK status unless otherwise specified by the specific command feature. ************************************************************************** BAD_RAM Characteristic Description COMMAND: BAD_RAM CODE: 0F1H CATEGORY: Fax - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: BAD_RAM is issued after the RAM test was performed. BAD_RAM is an indication of a faulty random access memory chip. It is not recommended that FAX operation proceed. Call Hayes Customer Service. EXAMPLE: BOARD_SYNC_COMMAND - Host BAD_RAM - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ***************************************************************************** BAD_ROM Characteristic Description COMMAND: BAD_ROM CODE: 0F2H CATEGORY: Fax - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: BAD_ROM is issued after the ROM test was performed. BAD_ROM is an indication of faulty read only memory chip. It is not recommended that FAX operation proceed. Call Hayes Customer Service. EXAMPLE: BOARD_SYNC_COMMAND - Host BAD_ROM - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ************************************************************************** Board_ACK_Status Characteristic Description COMMAND: Board_ACK_Status CODE: 02H CATEGORY: Status DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: This API is part of the handshake protocol with the Host. The JT Fax board returns a BOARD_ACK_STATUS acknowledging the receipt or completion of a command. Some commands have additional handshake sequences and are detailed under the specific command. EXAMPLE: REC_PCX_ON_COMMAND - Host BOARD_ACK_STATUS - JT Fax (continue if necessary) . . . RELATED FUNCTIONS: PC_ACK ************************************************************************** Board_Sync_Command Characteristic Description COMMAND: Board_Sync_Command CODE: 0FFH CATEGORY: FAX - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: GOOD_INIT IDLE DEFAULT: Not applicable DESCRIPTION: The BOARD_SYNC_COMMAND initiates command state for the Fax after a power up or HARDWARE_RESET_COMMAND. No commands are accepted by the Fax until this command is issued. After the command is issued, BOARD_STATUS is updated in the API block. A GOOD_INIT is issued when the Fax is ready for commands. If a GOOD_INIT is not received , then the Host may need to issue another HARDWARE_RESET_COMMAND. EXAMPLE: BOARD_SYNC_COMMAND - Host GOOD_INIT - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: GOOD_INIT, HARDWARE_RESET_COMMAND ************************************************************************** Busy_Command Characteristic Description COMMAND: Busy_Command CODE: 02FH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Detect Busy DESCRIPTION: The BUSY_COMMAND instructs the JT Fax to recognize a busy signal. EXAMPLE: IDLE - FAX BUSY_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_DIAL_COMMAND, DTMF_DIAL_COMMAND ************************************************************************** CED_Off_Command Characteristic Description COMMAND: CED_Off_Command CODE: 037H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CED_OFF_COMMAND terminates the output of an ITU-T T.4 specified 2100 Hz tone. EXAMPLE: CED_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CED_ON_COMMAND ***************************************************************************** CED_On_Command Characteristic Description COMMAND: CED_On_Command CODE: 036H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CED_ON_COMMAND outputs an ITU-T T.4 specified 2100 Hz tone. EXAMPLE: CED_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CED_OFF_COMMAND ************************************************************************** CNG_Detect_Off_Command Characteristic Description COMMAND: CNG_Detect_Off_Command CODE: 061H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Off DESCRIPTION: The CNG_DETECT_OFF_COMMAND must be issued from command state. The command disables the voice and DTMF modes when answering a call. After answering a call, the Fax will not determine if the caller is a voice call or Fax call by detecting a CNG tone. The answer back tone is transmitted. EXAMPLE: IDLE - FAX CNG_DETECT_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR ************************************************************************** CNG_Detect_On_Command Characteristic Description COMMAND: CNG_Detect_On_Command CODE: 060H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Off DESCRIPTION: The CNG_DETECT_ON_COMMAND must be issued from command state. The command enables the voice and DTMF modes when answering a call. After answering a call, the Fax will not determine if the caller is a voice call or Fax call by detecting a CNG tone. The answer back tone is transmitted. EXAMPLE: IDLE - FAX CNG_DETECT_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR ************************************************************************** CNG_Off_Command Characteristic Description COMMAND: CNG_Off_Command CODE: 035H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CNG_OFF_COMMAND terminates the output of an ITU-T T.4 specified 1100 Hz tone. EXAMPLE: CNG_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CNG_OFF_COMMAND ************************************************************************** CNG_On_Command Characteristic Description COMMAND: CNG_On_Command CODE: 034H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CNG_ON_COMMAND outputs an ITU-T T.4 specified 1100 Hz tone. EXAMPLE: CNG_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CNG_OFF_COMMAND ************************************************************************** DTMF_Detect_Off_Command Characteristic Description COMMAND: DTMF_Detect_Off_Command CODE: 074H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_OFF_COMMAND disables the Fax capability to detect DTMF tones while in the Voice/DTMF mode. EXAMPLE: IDLE - FAX DTMF_DETECT_OFF_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** DTMF_Detect_On_Command Characteristic Description COMMAND: DTMF_Detect_On_Command CODE: 073H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_ON_COMMAND enables the Fax capability to detect DTMF tones while in the Voice/DTMF mode. EXAMPLE: IDLE - FAX DTMF_DETECT_ON_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** DTMF_Detect_Status Characteristic Description COMMAND: DTMF_Detect_Status CODE: 070H CATEGORY: Voice , Status DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: DTMF digit in DATA_AREA DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_STATUS informs the Host that a DTMF tone was detected while in VOICE/DTMF mode. The DTMF_DETECT_STATUS command is only issued after a DTMF_DETECT_ON_COMMAND. EXAMPLE: DTMF_DETECT_ON_COMMAND - Host . . . SILENCE_DETECTED_STATUS - FAX PC_ACK - Host ...load DTMF byte in DATA_AREA - FAX DTMF_DETECT_STATUS - FAX ...retrieve DTMF byte - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", DTMF_DETECT_ON_COMMAND, DTMF_DETECT_OFF_COMMAND ************************************************************************** DTMF_Dial_Command Characteristic Description COMMAND: DTMF_Dial_Command CODE: 02CH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: DTMF number at OFFSET 00H in buffer_area Max. number length 60 characters OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_DIAL_COMMAND dials the digits stored at BUFFER_AREA. The dial command does not connect the phone line. The line must be connected with an OFF_HOOK_COMMAND. The dial string has several digits and modifiers. The DTMF digits supported are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, #, A, B, C, D. The dial modifiers are: JT Fax 9600B COMPATIBILITY First byte: 'P' - Pulse Dial 'T' - Tone Dial Second byte: 'W' - Wait for Dial Tone ' ' - Do not Wait If the first two bytes are 'MA' (Manual Dial) a number will not be dialed. JT Fax 14400B -------------------------- P - pulse dial T - tone dial W - wait for dialtone , - 2 second pause ! - flash hook I - no busy detect Note: This command may be used in Voice offline mode. EXAMPLE: IDLE - FAX (load string value in buffer_area) - Host DIAL_DTMF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_ON_TIME_COMMAND, DTMF_OFF_TIME_COMMAND ************************************************************************** DTMF_Off_Command Characteristic Description COMMAND: DTMF_Off_Command CODE: 029H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_OFF_COMMAND commands the JT Fax to terminate a DTMF tone. The command does not disconnect the line. EXAMPLE: IDLE - FAX DTMF_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: DTMF_ON_COMMAND, FAX_MODE_COMMAND, ON_HOOK_COMMAND ************************************************************************** DTMF_Off_Time_Command Characteristic Description COMMAND: DTMF_Off_Time_Command CODE: 02BH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: DTMF time at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 70 ms DESCRIPTION: DTMF_OFF_TIME_COMMAND configures the interdigit off time for automatic dialing of DTMF digits. The value specified is in milliseconds with a length of WORD. Max. value is 65 seconds. Standard minimum value is 65 ms. EXAMPLE: IDLE - FAX (load word value in buffer_area) - Host DTMF_OFF_TIME_COMMAND - - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_DIAL_COMMAND, DTMF_ON_TIME_COMMAND ************************************************************************** DTMF_On_Command Characteristic Description COMMAND: DTMF_On_Command CODE: 028H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: DTMF tone digit at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_ON_COMMAND commands the JT Fax to send a DTMF digit specified by the value in BUFFER_AREA. The duration of the tone is controlled by the Host. The command does not connect the phone line. The tone is terminated by the DTMF_OFF_COMAMND. Note: JT Fax must be in Fax mode for Utility commands. EXAMPLE: IDLE - FAX (load digit in buffer area) - Host DTMF_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: DTMF_OFF_COMMAND, FAX_MODE_COMMAND, OFF_HOOK_COMMAND ************************************************************************** DTMF_On_Time_Command Characteristic Description COMMAND: DTMF_On_Time_Command CODE: 029H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: DTMF time at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 70 ms DESCRIPTION: DTMF_ON_TIME_COMMAND sets the on-time for automatic dialing of DTMF digits. The value specified is in milliseconds with a length of WORD. Max. value is 65 seconds. The standard minimum value is 65 ms. EXAMPLE: IDLE - FAX (load word value in buffer_area)- Host DTMF_ON_TIME_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_DIAL_COMMAND, DTMF_OFF_TIME_COMMAND ************************************************************************** Enhanced_Mode_Off_Command Characteristic Description COMMAND: Enhanced_Mode_Off_Command CODE: 053H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The ENHANCED_MODE_OFF_COMMAND allows the JT Fax 14400B to operate in 9600B compatible mode. All status messages, error codes and speeds provided by the 14400B are disabled. EXAMPLE: IDLE - FAX ENHANCED_MODE_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, FAX_144_MODE_OFF_COMMAND, ENHANCED_MODE_ON_COMMAND ************************************************************************** Enhanced_Mode_On_Command Characteristic Description COMMAND: Enhanced_Mode_On_Command CODE: 052H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The ENHANCED_MODE_ON_COMMAND allows the JT Fax 14400B to operate in enhanced mode. All status messages, error codes and speeds provided by the 14400B are enabled. EXAMPLE: IDLE - FAX ENHANCED_MODE_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, FAX_144_MODE_ON_COMMAND, ENHANCED_MODE_OFF_COMMAND ************************************************************************** EOD_Flag Characteristic Description COMMAND: EOD_Flag CODE: 076H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The EOD_FLAG terminates the DTMF search. Any other command can be issued after this command sequence is complete. EXAMPLE: IDLE - FAX GET_DTMF_COMMAND - Host BOARD_ACK_COMMAND - FAX ...byte in data_area - FAX DTMF_DETECT_STATUS - FAX ...retrieve byte from data_area - Host PC_ACK - Host ...continue looking for DTMF - FAX . . . EOD_FLAG - HOST BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF" ************************************************************************** EOPFLAG Characteristic Description COMMAND: EOPFLAG CODE: 08H CATEGORY: Fax DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: EOPFLAG signifies that an end of page is necessary. The Host may elect to use the LINE_COUNT field in the API block for setting an end of page. The Fax page is transmitted until the line count is reached ( MIN_PAGE = non zero) and an EOP is issued to the called device. If the FAX page was short and a standard page length is used, then the LINECOUNT field sets the page length (MIN_PAGE = 0). All pages are the length of LINECOUNT. When using the EOPFLAG a PC_ACK command is not necessary. EXAMPLE: LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . LOAD_DATA_COMMAND - FAX ...load data - Host EOPFLAG - Host LOAD_DATA_COMMAND - FAX . . . RELATED FUNCTIONS: LOAD_DATA_COMMAND, EOTFLAG ************************************************************************** EOTFLAG Characteristic Description COMMAND: EOTFLAG CODE: 0FH CATEGORY: Fax DIRECTION: JT Fax to Host Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: EOTFLAG signifies an end of data transfer. The Fax command can be issued from either the Host or JT Fax. The Host issues the command in the XMIT_MODE to end data transmission, or in downloadable fonts to end the font download. The JT Fax issues the command to end a Fax reception. EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host EOTFLAG - Host . . . IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, RECVINIT, LOADFONT_COMMAND, "Error Codes, EOV_FLAG ************************************************************************** EOV_FLAG Characteristic Description COMMAND: EOV_FLAG CODE: 066H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA LOAD_DATA_COMMAND DEFAULT: Not applicable DESCRIPTION: The EOV_FLAG notifies the Host/Fax that the last buffer of data is in the DATA_AREA. This command is issued after a PLAY_START_COMMAND sequence. The command is used for voice data only. EXAMPLE: REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX ...load data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX ...load data from DATA_AREA - Host REC_STOP_COMMAND - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, RECVINIT_COMMAND ************************************************************************** Error Characteristic Description COMMAND: Error CODE: 06H CATEGORY: Status DIRECTION: JT Fax to Host INPUT to JT: IDLE OUTPUT from JT: RET_CODE contains error code DEFAULT: Not applicable DESCRIPTION: ERROR signifies that an error has occurred. The type of error can be retrieved from the RET_CODE field. ERROR does require the host to reset the COMMAND_DATA field to IDLE when the error code is read. EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . ERROR - JT Fax BUSY(ret_code field) - JT Fax (check ret_code) - Host IDLE - Host RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, RECVINIT, Error Codes ************************************************************************** Extend_Status_Off_Command Characteristic Description COMMAND: Extend_Status_Off_Command CODE: 04FH CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The EXTEND_STATUS_OFF_COMMAND disables the extended status available to the Host with the JT Fax 14400B. The status codes do not appear in the STATUS field of the API block and the status command is not issued. EXAMPLE: IDLE - FAX EXTEND_STATUS_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, STATUS_COMMAND ************************************************************************** Extend_Status_On_Command Characteristic Description COMMAND: Extend_Status_On_Command CODE: 04EH CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The EXTEND_STATUS_ON command enables the extended status available to the Host with the JT Fax 14400B. The status codes appear in the STATUS field of the API block after the status command is issued. EXAMPLE: IDLE - FAX EXTEND_STATUS_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, STATUS_COMMAND ************************************************************************** FAX_144_Mode_Off_Command Characteristic Description COMMAND: FAX_144_Mode_Off_Command CODE: 051H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The FAX_144_MODE_OFF_COMMAND allows the JT Fax 14400B to be compatible with the JT Fax 9600B. This command is included due to the change in the speed indexes for 14,400 bps. EXAMPLE: IDLE - FAX FAX_144_MODE_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, FAX_144_MODE_ON_COMMAND, ENHANCED_MODE_OFF_COMMAND ************************************************************************** FAX_144_Mode_On_Command Characteristic Description COMMAND: FAX_144_Mode_On_Command CODE: 050H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The FAX_144_MODE_ON_COMMAND allows the JT Fax 14400B to enable reception of Faxes at the 14,400 bps rate. This command is included due to the change in the speed indexes for 14,400 bps. An index value of 5 in the BAUD_RATE field indicates 14,400 bps and a 4 indicates 12,000 bps. This command only affects the speed. EXAMPLE: IDLE - FAX FAX_144_MODE_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, FAX_144_MODE_OFF_COMMAND, ENHANCED_MODE_ON_COMMAND ************************************************************************** FAX_Mode_Command Characteristic Description COMMAND: FAX_Mode_Command CODE: 026H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: MODEM MODE in Command State FAX MODE is automatic with Fax commands DESCRIPTION: The FAX_MODE_COMMAND is required for all Utility commands. The command also allows JT Fax to control the Telco line interface instead of requiring OEM daughter cards. PC Bus access is available in both Fax and Modem mode. If a daughter card is not attached, Modem mode will not be necessary for JT Fax. EXAMPLE: IDLE - FAX FAX_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX OFF_HOOK_COMMAND - Host RELATED FUNCTIONS: MODEM_MODE_COMMAND, "Utility Commands" ************************************************************************** Gain_Down_Command Characteristic Description COMMAND: Gain_Down_Command CODE: 068H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The GAIN_DOWN_COMMAND decrements the maximum gain of the voice record by 1 dB. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The value is retained between recordings. EXAMPLE: IDLE - FAX GAIN_DOWN_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Gain_Up_Command Characteristic Description COMMAND: Gain_Up_Command CODE: 067H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The GAIN_UP_COMMAND increments the maximum gain of the voice record by 1 dB. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The value is retained between recordings. EXAMPLE: IDLE - FAX GAIN_UP_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Get_DTMF_Command Characteristic Description COMMAND: Get_DTMF_Command CODE: 075H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Byte value in DATA_AREA DEFAULT: Not applicable DESCRIPTION: The GET_DTMF_COMMAND can also be used in command state. The command initiates DTMF mode and continually searches for DTMF tones. The EOD_FLAG terminates the DTMF search. Any other command can be issued after this command. The "on/off hook" is controlled by the Host. EXAMPLE: IDLE - FAX GET_DTMF_COMMAND - Host BOARD_ACK_STATUS - FAX ...byte in data_area - FAX DTMF_DETECT_STATUS - FAX ...retrieve byte from data_area - Host PC_ACK - Host ...continue looking for DTMF - FAX . . . EOD_FLAG - HOST BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", EOD_FLAG ************************************************************************** Good_Init Characteristic Description COMMAND: Good_Init CODE: 0F0H CATEGORY: FAX - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The GOOD_INIT command is issued after a BOARD_SYNC_COMMAND is received following power up. It indicates that the FAX is ready for commands and the ROM/RAM test was good. EXAMPLE: BOARD_SYNC_COMMAND - Host GOOD_INIT - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ************************************************************************** Hardware_Reset_Command Characteristic Description COMMAND: Hardware_Reset_Command CODE: 030H CATEGORY: Control DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The HARDWARE_RESET_COMMAND instructs JT Fax to initiate a "power on reset" function. The command is placed in the API block location, RESET_BOARD, at offset 51H. When RESET_BOARD is set to a HARDWARE_RESET_COMMAND, then the following happens: RAM and ROM test is executed data pump is reset, memory cleared all options set to default conditions. After six seconds, JT Fax starts waiting for a SYNC_COMMAND from the Host. A SYNC_COMMAND must be issued by the Host before any commands can be accepted. Note: This command should be used a last resort because it resets the JT Fax hardware and all user configurations to default. EXAMPLE: IDLE - FAX HARDWARE_RESET_COMMAND - Host (wait for 6 seconds) SYNC_COMMAND - Host IDLE_STATUS - FAX RELATED FUNCTIONS: SYNC_COMMAND, SOFTWARE_RESET_COMMAND ************************************************************************** Idle_Status Characteristic Description COMMAND: Idle_Status CODE: 01H CATEGORY: Status DIRECTION: JT Fax to Host Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: IDLE_STATUS is a compatibility status code/command. The command is issued to reset the Command field. The command is used by the Host in response to a BOARD_ACK_STATUS, or by JT Fax in response to a PC_ACK command or when in command state waiting for command. This command should only be used while in command state. EXAMPLE: IDLE - FAX (load time in buffer area - Host SET_CARRIER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - Host RELATED FUNCTIONS: BOARD_ACK_STATUS, PC_ACK ************************************************************************** Load_Data_Command Characteristic Description COMMAND: Load_Data_Command CODE: 03H CATEGORY: FAX DIRECTION: JT Fax to Host INPUT to JT: Data in DATA_AREA PC_ACK EOTFLAG EOPFLAG OUTPUT from JT: none LOAD_DATA_COMMAND EOTFLAG (receive mode only) DEFAULT: Not applicable DESCRIPTION: The LOAD_DATA_COMMAND is used when large amounts of data are needed. The direction of the load depends on the mode selected. If in TRANSMIT_MODE, the load data command is issued by JT Fax to indicate that data is ready to be received from the Host in the DATA_AREA. Once all the data has been placed in the DATA_AREA, the Host issues a PC_ACK. In the RECEIVE_MODE, the command is issued by JT Fax to alert the Host that data is available in the data area to be retrieved. After the Host retrieves the data, the host issues a PC_ACK. EXAMPLE: RECEIVE_MODE only RECVINIT - JT Fax (Host load ID in Buffer Area) PC_ACK - Host LOAD_DATA_COMMAND - JT Fax (Host retrieves data) PC_ACK - Host . . . EOT - JT Fax RELATED FUNCTIONS: EOT_FLAG, RECVINIT, PC_ACK ************************************************************************** Load_Font_Command Characteristic Description COMMAND: Load_Font_Command CODE: 04H CATEGORY: FAX DIRECTION: Host to JT Fax INPUT to JT: Font Data in DATA_AREA EOTFLAG OUTPUT from JT: BOARD_ACK FONT_TOO_LARGE DEFAULT: Not applicable DESCRIPTION: The LOAD_FONT_COMMAND is used to load the predefined JT Fax fonts or a user designed font (see Chapter 7). The font would be used only in transmit mode and file type ASCII_TYPE. Since the font data is larger than the DATA area several LOAD_DATA_COMMANDS would be issued by JT Fax. Issuing a HARD_RESET_COMMAND destroys a soft font, requiring a reload. Issuing a SOFT_RESET_COMMAND does not destroy a soft font. EXAMPLE: LOAD_FONT_COMMAND - Host LOAD_DATA_COMMAND - JT Fax ...load data in data_area - Host PC_ACK - Host LOAD_DATA_COMMAND - JT Fax . . . EOT - Host RELATED FUNCTIONS: PC_ACK, EOT, LOAD_DATA_COMMAND, "JT Fax Fonts" ************************************************************************** Manual_REC_Command Characteristic Description COMMAND: MANUAL_REC_COMMAND CODE: 10H CATEGORY: Fax DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: Manual receive enables the Host to force JT Fax to answer a call. The EXTEND_STATUS mode must be enabled before the STATUS command is received. A RING status appears in the STATUS_CODE field. After the status is retrieved, the Host returns the COMMAND field to IDLE. EXAMPLE: IDLE - FAX STATUS_COMMAND - FAX ...retrieve status code RING - Host MANUAL_REC_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . RELATED FUNCTIONS: "Status Codes", STATUS_COMMAND ************************************************************************** Modem_Mode_Command Characteristic Description COMMAND: Modem_Mode_Command CODE: 027H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: MODEM MODE in Command State FAX MODE is automatic with FAX commands DESCRIPTION: The MODEM_MODE_COMMAND is required to remove the previous FAX_MODE_COMMAND. The command also allows the OEM daughter Card to control the Telco line interface instead of JT Fax. PC Bus access is available in both Fax mode and Modem mode. If a Daughter card is not attached, Modem mode will not be necessary for JT Fax. EXAMPLE: IDLE - FAX FAX_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX OFF_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX MODEM_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND ************************************************************************** No_Busy_Command Characteristic Description COMMAND: No_Busy_Command CODE: 02EH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Detect Busy DESCRIPTION: The NO_BUSY_COMMAND instructs the JT Fax to ignore the busy signal. EXAMPLE: IDLE - FAX NO_BUSY_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_DIAL_COMMAND, DTMF_DIAL_COMMAND ************************************************************************** OEM_Code_Command Characteristic Description COMMAND: OEM_Code_Command CODE: 079H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The OEM_CODE_COMMAND executes Host code that was downloaded to the Fax. The Fax utilizes a 16 MHz processor. The OEM_CODE_COMMAND executes custom assembly language code for the Host. The OEM code and data can be no larger than 28 KB. The OEM code has access to the command byte structure at 0:8000H. The code segment must be "0" and the code or data must start at 0:8800H. Additional 3K of RAM is available at 0:67D0H. (See Appendix F). EXAMPLE: IDLE - FAX OEM_CODE_COMMAND - Host ...OEM code executes - FAX ...OEM code terminates - FAX BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "OEM CODE ", OEM_LOAD_COMMAND ************************************************************************** OEM_Load_Command Characteristic Description COMMAND: OEM_Load_Command CODE: 07AH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: OEM code in DATA_AREA OUTPUT from JT: LOAD_DATA_COMMAND BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The OEM_LOAD_COMMAND loads the OEM code into the Soft Font RAM. The OEM code and data can be no larger than 28 KB. The OEM_LOAD_COMMAND sequence is similar to the LOADFONT_COMMAND sequence. If the OEM code is larger than the space available, a FONT_TOO_LARGE error is returned. The load aborts when the error is reported. The OEM code remains in RAM until power up or a HARDWARE_RESET_COMMAND or LOAD_FONT_COMMAND is issued. Note Soft fonts are not available when using this command. EXAMPLE: IDLE - FAX OEM_LOAD_COMMAND - Host LOAD_DATA_COMMAND - JT Fax ...Load OEM code into Data_area - Host PC_ACK - Host LOAD_DATA_COMMAND - JT Fax . . . EOT - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "OEM CODE ", OEM_CODE_COMMAND, LOAD_FONT_COMMAND ************************************************************************** Off_Hook_Command Characteristic Description COMMAND: Off_Hook_Command CODE: 025H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The OFF_HOOK_COMMAND forces the JT Fax to go "Off-Hook" (i.e., pickup the phone). The command is used when the Host wants to initiate a dialing sequence (DTMF or Pulse). The OFF_HOOK_COMMAND returns to Command state after completion. Note: JT Fax must be in FAX_MODE to use Utility commands. EXAMPLE: IDLE - FAX OFF_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND, ON_HOOK_COMMAND ************************************************************************** On_Hook_Command Characteristic Description COMMAND: On_Hook_Command CODE: 024H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The ON_HOOK_COMMAND forces the JT Fax to go "on- hook". The command is used after "OFF_HOOK_COMMAND" has been issued when the Host requires a return to "on-hook" condition (i.e., hang-up). The ON_HOOK_COMMAND returns to Command state after completion. Note: JT Fax must be in FAX_MODE to use Utility commands. EXAMPLE: IDLE - FAX ON_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND, OFF_HOOK_COMMAND ************************************************************************** Online_Voice_Record_Off Characteristic Description COMMAND: Online_Voice_Record_Off CODE: 78H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Off DESCRIPTION: This API command turns the online voice record option off. This command can be issued after the voice message has been received to prevent premature termination of tone or voice greeting messages. EXAMPLE: IDLE - Host . . . ONLINE_VOICE_RECORD_ON - Host BOARD_ACK - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host . . . EOVFLAG - FAX ...Load data from Data Area - Host PC_ACK - Host IDLE - FAX ONLINE_VOICE_RECORD_OFF - Host BOARD_ACK - FAX RELATED FUNCTIONS: ONLINE_VOICE_RECORD_ON, EOVFLAG, RECORD_START_COMMAND ************************************************************************** Online_Voice_Record_On Characteristic Description COMMAND: Online_Voice_Record_On CODE: 77H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Off DESCRIPTION: This API provides the option to record voice messages while online. The message is terminated after the caller disconnects and dial tone is detected. Since tones in the range of 350-620 Hz cause termination, it is necessary to disable this option during all other recordings. EXAMPLE: IDLE - Host . . . SILENCE_DETECTED_STATUS - FAX . . . ONLINE_VOICE_RECORD_ON - Host BOARD_ACK - FAX PC_ACK - Host REC_START_COMMAND - Host . . . EOVFLAG - FAX ...Load data from Data Area - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: ONLINE_VOICE_RECORD_OFF, EOVFLAG, RECORD_START_COMMAND ************************************************************************** PC_ACK Characteristic Description COMMAND: PC_ACK CODE: 05H CATEGORY: STATUS handshake DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None, Idle DEFAULT: Not applicable DESCRIPTION: The PC_ACK command is used as acknowledgment between the PC software and the JT Fax 14400B. The response is appropriate when receiving a command from the JT Fax 14400 B Dual board. A PC_ACK does not require a response from the JT Fax 14400B Dual board. EXAMPLE: . . . GET_DTMF_COMMAND - Host BOARD_ACK_STATUS - JT Fax DTMF_DETECT_STATUS - JT Fax (retrieve DTMF code) PC_ACK - Host . . . RELATED FUNCTIONS: LOAD_DATA_COMMAND, RECVINIT, LOAD_FONT_COMMAND, BOARD_ACK_STATUS ************************************************************************** Play_End_Command Characteristic Description COMMAND: Play_End_Command CODE: 063H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The PLAY_END_COMMAND stops the playback of a voice file in voice mode. The current buffer is deleted and the voice transmission is halted. EXAMPLE: PLAY_START_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX PLAY_END_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", PLAY_START_COMMAND, EOV_FLAG ************************************************************************** Play_Start_Command Characteristic Description COMMAND: Play_Start_Command CODE: 062H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: Binary Voice data in DATA_AREA OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The PLAY_START_COMMAND initiates the playing of a recorded voice file. The command sequence is similar to a XMIT_COMMAND. An EOV_FLAG is issued when the last voice data is entered in DATA_AREA. The timing for loading data is the same as XMIT_COMMAND for JT Fax data formats. EXAMPLE: PLAY_START_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host EOV_FLAG - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR, PLAY_STOP_COMMAND, EOV_FLAG ************************************************************************** Pulse_Break_Command Characteristic Description COMMAND: Pulse_Break_Command CODE: 03AH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area in milliseconds OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 60 milliseconds DESCRIPTION: The PULSE_BREAK_COMMAND requires the Host to set the value of the "BREAK" portion of the make/break ratio for pulse dialing. The value is written into buffer_area before the command is issued. EXAMPLE: IDLE - FAX PULSE_BREAK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: PULSE_MAKE_COMMAND, PULSE_DIAL_COMMAND ************************************************************************** Pulse_Dial_Command Characteristic Description COMMAND: Pulse_Dial_Command CODE: 02DH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: Pulse number at OFFSET 00H in buffer_area Max. number length 60 characters. OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: PULSE_DIAL_COMMAND dials the phone number at BUFFER_AREA. The command does not connect the phone line. The line must be connected with an OFF_HOOK_COMMAND. The dial string has several digits and modifiers. The DTMF digits supported are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. The dial modifiers are: JT Fax 9600B COMPATIBILITY ------------------------------- First byte: 'P' - Pulse Dial 'T' - Tone Dial Second byte: 'W' - Wait for Dial Tone ' ' - Do not Wait If the first two bytes are 'MA' (Manual Dial) a number will not be dialed. JT Fax 14400B --------------------------- P - pulse dial T - tone dial W - wait for dialtone , - 2 second pause ! - flash hook I - no busy detect Note: JT Fax must be in Fax mode for Utility commands. EXAMPLE: IDLE - FAX (load string value in buffer_area) - Host PULSE_DIAL_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_INTER_COMMAND ************************************************************************** Pulse_Inter_Command Characteristic Description COMMAND: Pulse_Inter_Command CODE: 032H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Time in milliseconds, WORD value in buffer_area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 600 milliseconds DESCRIPTION: The PULSE_INTER_COMMAND sets the interdigit time of the pulse dial. The units of the command are in milliseconds. EXAMPLE: IDLE - FAX (value in buffer_area) - Host PULSE_INTER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - FAX RELATED FUNCTIONS: PULSE_BREAK_COMMAND, PULSE_MAKE_COMMAND ************************************************************************** Pulse_Make_Command Characteristic Description COMMAND: Pulse_Make_Command CODE: 03BH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area in milliseconds OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 40 milliseconds DESCRIPTION: The PULSE_MAKE_COMMAND requires the Host to set the value of the "make" portion of the make/break ratio for pulse dialing. The value is written into buffer_area before the command is issued. EXAMPLE: IDLE - FAX PULSE_MAKE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: PULSE_MAKE_COMMAND, PULSE_DIAL_COMMAND ***************************************************************************** RecvInit Characteristic Description COMMAND: RecvInit CODE: 10H CATEGORY: Fax DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: RECVINIT command is issued to the Host when JT Fax detects an incoming call. The call may be a voice call or a fax call. It is up to the Host to make this determination (see Chapter 4) and decide to initiate voice procedures, disconnect, or continue the call. The default is to continue the call. If the caller is voice and CNG_DETECT is not enabled, the CED is transmitted and the call disconnects when Carrier timer expires. CNG detect mode has several options (see Chapter 4). EXAMPLE: IDLE - FAX RECVINIT_COMMAND - FAX ...(load ID into Buffer Area) - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...retrieve data - Host PC_ACK - Host . . . EOTFLAG - JT Fax ...retrieve data - Host PC_ACK - Host IDLE - JT Fax RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, SET_VOICE_COMMAND, DTMF_DETECT_COMMAND, DTMF_DETECT, SILENCE_DETECTED, SET_ACTIVITY_TIMER, "Error Codes" ************************************************************************** Rec_PCX_Off_Command Characteristic Description COMMAND: Rec_PCX_Off_Command CODE: 023H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: PCX receive conversion disabled DESCRIPTION: REC_PCX_OFF_COMMAND configures JT Fax to convert the caller's T.4 encoded file to a JT_FAX_FORMAT. EXAMPLE: IDLE - FAX REC_PCX_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: RECVINIT, MANUAL_REC_COMMAND, "Data Formats" ************************************************************************** Rec_PCX_On_Command Characteristic Description COMMAND: Rec_PCX_On_Command CODE: 022H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: PCX receive conversion disabled DESCRIPTION: REC_PCX_ON_COMMAND configures JT Fax to convert the caller's T.4 encoded file to a PCX version 3 file. The PCX header is given to the Host in the first data load. EXAMPLE: IDLE - FAX REC_PCX_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: RECVINIT, MANUAL_REC_COMMAND ************************************************************************** Rec_Start_Command Characteristic Description COMMAND: Rec_Start_Command CODE: 064H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA Load_Data_Command DEFAULT: Not applicable DESCRIPTION: The REC_START_COMMAND instructs the fax to initiate a recording session. The command sequences are similar to the receive Fax data. Once the command is issued, the data pump is configured and voice data from the A/D converter is read immediately. The data sampling continues until a REC_STOP_COMMAND is issued. EXAMPLE: REC_START_STATUS - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...retrieve data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host . . . RELATED FUNCTIONS: "Voice and DTMF", REC_STOP_COMMAND, RECVINIT_COMMAND Note: This command can be used to record offline on Fax A with a microphone. Recording may be done while connected on-line with either Fax A or Fax B using the phone line as input. ************************************************************************** Rec_Stop_Command Characteristic Description COMMAND: Rec_Stop_Command CODE: 065H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA Load_Data_Command EOV_FLAG DEFAULT: Off DESCRIPTION: The REC_STOP_COMMAND instructs the JT Fax to terminate a recording session. The recording stops and the data in the record buffers is transmitted to the Host. To end the transmission of data to the Host, the JT Fax issues an EOV_FLAG. EXAMPLE: REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host REC_STOP_COMMAND - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, RECVINIT_COMMAND Note: After recording messages, disconnect the microphone from Fax A. ************************************************************************** Reset_Data_Pump_Command Characteristic Description COMMAND: Reset_Data_Pump_Command CODE: 033H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The RESET_DATA_PUMP command resets the Fax data pump. When resetting the data pump, the chip returns to its initial power on state. This command should only be used before the DIAL_DTMF_COMMANDS state. The command is used by JT Fax to set the data pump to a known state after each call or receive. EXAMPLE: RESET_DATA_PUMP_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: HARDWARE_RESET_COMMAND ************************************************************************** Return_to_Command Characteristic Description COMMAND: Return_to_Command CODE: 072H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The RETURN_TO_COMMAND terminates voice mode and returns to command state. The JT Fax returns to command state, and the data pump is reset. The phone line may be disconnected by the ON_HOOK_COMMAND if desired. EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host RETURN_TO_COMMAND - HOST BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, RETURN_TO_DATA_COMMAND ************************************************************************** Return_to_Data_Command Characteristic Description COMMAND: Return_to_Data_Command CODE: 071H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The RETURN_TO_DATA_COMMAND terminates voice mode and returns to complete a fax call. The JT Fax is returned to fax data at the beginning of Phase A and transmits the CED to the caller. (See Chapter 6). EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host RETURN_TO_DATA_COMMAND - Host BOARD_ACK_STATUS - FAX ...send CED - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** Setup_Voice_Command Characteristic Description COMMAND: Setup_Voice_Command CODE: 05FH CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SETUP_VOICE_COMMAND must be issued from command state. The command is used to enter voice mode for RECORDING or PLAYBACK and testing. Once in the VOICE mode, all voice commands can be issued and DTMF detection is enabled. See Chapter 6. EXAMPLE: IDLE - FAX SETUP_VOICE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: Voice and DTMF" ************************************************************************** Set_Act_Timer_Command Characteristic Description COMMAND: Set_Act_Timer_Command CODE: 06FH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 3.5 seconds DESCRIPTION: The SET_ACT_TIMER_COMMAND sets the activity timer when CNG_DETECT_ON_COMMAND has been issued. The timer value is specified in milliseconds and has a range from 0-65000. The activity timer starts after the Fax picks up the phone line. If a CNG tone is detected (Fax caller), the timer is reset, a CED is transmitted (Fax callee) and the Fax call continues. However, if silence is detected (no CNG tone) for the duration of the activity timer, the SILENCE_DETECT_STATUS is issued. The JT Fax automatically enters VOICE/DTMF mode. Note: Cycle time for a CNG_TONE is 3 seconds off, 0.5 seconds on. EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host IDLE - Host . . . PLAY_START_COMMAND - Host . . . RELATED FUNCTIONS: "Voice and DTMF", PLAY_START_COMMAND, DTMF_DIAL_COMMAND, DTMF_DETECT_ON_COMMAND ************************************************************************** Set_Carrier_Command Characteristic Description COMMAND: Set_Carrier_Command CODE: 020H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Wait for carrier time buffer area (word value) - in milliseconds max. (65 seconds) OUTPUT from JT: BOARD_ACK DEFAULT: 60 sec DESCRIPTION: The SET_CARRIER_COMMAND sets the time to wait for the caller and called station to complete Phase A. The NO_CARRIER timer starts after the dial and terminates at the beginning of Phase B. If the timer expires, the call is disconnected and an ERROR status returned to the host. Carrier may also be set placing a work value into Buffer Area [0] before a Sync Command is issued. Units are in milliseconds. EXAMPLE: (load time in buffer area) - Host SET_CARRIER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: ERROR, "Error Codes", "Status Codes" ************************************************************************** Set_Gain_Command Characteristic Description COMMAND: Set_Gain_Command CODE: 069H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The SET_GAIN_COMMAND sets the maximum gain of the voice recording. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The maximum gain is calculated by the following formula: MAX_GAIN = 655.36 [ 50 - Gain Limit (dB) ]. The value should be a 16-bit, positive, twos compliment value. The value is retained between recordings. EXAMPLE: IDLE - FAX ...load Gain Limit WORD in buffer_area - Host SET_GAIN_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_Sample_Rate_Command Characteristic Description COMMAND: Set_Sample_Rate_Command CODE: 06AH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: BYTE value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 9600 Hz DESCRIPTION: The SET_SAMPLE_RATE_COMMAND sets the sampling rate of the voice recording. The value placed into the Buffer_Area is an index to the provided sample rates. The following is an EXAMPLE of the available sample rates: --------------- 1 9600 Hz 2 8000 Hz 3 7200 Hz The value is retained between voice mode sessions. EXAMPLE: IDLE - FAX ...load BYTE in buffer_area - Host SET_SAMPLE_RATE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_Slew_Rate_Command Characteristic Description COMMAND: Set_Slew_Rate_Command CODE: 06BH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: WORD value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 0 DESCRIPTION: The SET_SLEW_RATE_COMMAND sets the slew rate of the voice recording. The value is placed into the Buffer_Area. The Slew rate value determines the fall off time of the voice wave form. The value can be adjusted by the following formula, SLEW_RATE = [19968/(Sample Rate x fall time in seconds)]. The value is a 16-bit, positive, twos compliment value. The value is retained between voice sessions. EXAMPLE: IDLE - FAX ...load BYTE in buffer_area - Host SET_SLEW_RATE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_User_CSI_Command Characteristic Description COMMAND: Set_User_CSI_Command CODE: 055H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Buffer_Area 20 byte CSI OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SET_USER_CSI_COMMAND provides flexibility in Fax identification. TSI/CSI Fax information for transmit and receive can be modified to contain a specialized message. The format previously available for 9600B allowed the CSI to be placed in the buffer area on transmit and receive. The format of header data in the BUFFER_AREA consisted of: 0-20 CSI 21-54 -other user information 55 - Page number followed by space (transmit only) 56 - 61 padded spaces. The CSI was always contained in the header of the transmitted page. In receive mode, the CSI was transmitted to the caller. Since the CSI appeared on the Fax page as a header, there was no way to send different CSI data to the caller/callee. This command allows two different messages to appear to the caller/callee. One message in the CSI and the other in the printed Fax header. The SET_USER_CSI mode can only be cleared with a HARD_RESET. EXAMPLE: IDLE - FAX SET_USER_CSI_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, "Buffer Area" ************************************************************************** Set_User_TSI_Command Characteristic Description COMMAND: Set_User_TSI_Command CODE: 054H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Buffer_Area 20 byte TSI OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SET_USER_TSI_COMMAND provides flexibility in fax identification. TSI/CSI fax information for transmit and receive can be modified to contain a specialized message. The format previously available for 9600B allowed the TSI to be placed in the buffer area on transmit and receive. The format of header data in the BUFFER_AREA consisted of: 0-20 TSI 21-54 -other user information 55 - Page number followed by space (transmit only) 56 - 61 padded spaces. The TSI was always contained in the header of the transmitted page. In receive mode, the TSI was transmitted to the caller. Since the TSI appeared on the Fax page as a header, there was no way to send different TSI data to the caller/callee. This command allows two different messages to appear to the caller/callee. One message in the TSI and the other in the printed Fax header. The SET_USER_TSI mode can only be cleared with a HARD_RESET. EXAMPLE: IDLE - FAX SET_USER_TSI_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, "Buffer Area" ************************************************************************** Silence_Detected_Status Characteristic Description COMMAND: Silence_Detected_Status CODE: 06CH CATEGORY: Voice DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The SILENCE_DETECTED_STATUS notifies the Host that a CNG tone was not detected within the user-defined time limit. The notification only occurs if a CNG_DETECT_ON_COMMAND has been previously issued. Once silence has been detected, the JT Fax enters into Voice mode. The Host has the following options 1. voice commands, 2. wait for DTMF detection, 3. return to data and continue call, and 4. return to command and terminate call. EXAMPLE: . . . SILENCE_DETECTED_STATUS - FAX PC_ACK - Host REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, DTMF_DIAL, DTMF_DETECT_ON_COMMAND ************************************************************************** Software_Reset_Command Characteristic Description COMMAND: Software_Reset_Command CODE: 031H CATEGORY: Control DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The SOFTWARE_RESET_COMMAND instructs JT Fax to initiate a soft reset function. The command is placed in the API block location, RESET_BOARD, at offset 51H. When RESET_BOARD is set to a SOFTWARE_RESET_COMMAND, the hardware is reset and all buffers are cleared (soft fonts are not cleared). After the default carrier time is reset to the value contained in BUFFER_AREA, JT Fax is in command state. EXAMPLE: SOFTWARE_RESET_COMMAND - Host (wait for 3 seconds) IDLE_STATUS - FAX RELATED FUNCTIONS: HARDWARE_RESET_COMMAND, SET_CARRIER_COMMAND ************************************************************************** Speaker_Off_Command Characteristic Description COMMAND: Speaker_Off_Command CODE: 03EH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The SPEAKER_OFF_COMMAND is used when the Host wants the speaker off for VOICE setup or when using the Utility commands. In normal JT Fax operation the speaker is controlled by the SPEAKER field of the API block. EXAMPLE: SPEAKER_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: SPEAKER_ON_COMMAND ************************************************************************** Speaker_On_Command Characteristic Description COMMAND: Speaker_On_Command CODE: 03DH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The SPEAKER_ON_COMMAND is used when the Host wants the speaker on for VOICE setup or when using the Utility commands. In normal JT Fax operation the speaker is controlled by the SPEAKER field of the API block. EXAMPLE: SPEAKER_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: SPEAKER_OFF_COMMAND ************************************************************************** Xmit_Command Characteristic Description COMMAND: Xmit_Command CODE: 01H CATEGORY: FAX Transmit DIRECTION: Host to JT Fax INPUT to JT: Phone number in buffer area (if desired) Header in buffer area FAX data in swap buffer EOPFLAG EOTFLAG OUTPUT from JT: LOAD_DATA_COMMAND BOARD_ACK SUCCESSFUL_TRANSMIT BUSY RING status messages DEFAULT: Not applicable DESCRIPTION: This API is the FAX transmit command. The transmit command operates the speaker, dials the phone number, and transfers the fax. After the dial is completed, the Host is prompted for the header information. This header is placed on the top page of the fax and a portion is used for the TSI. Once the header is received, the host is prompted for the data with the LOAD_DATA_COMMAND. The data is passed in the DATA_AREA location. The Host must issue a PC_ACK when all the data is loaded into DATA_AREA. Further LOAD_DATA_COMMANDs are issued until the fax transfer is complete. The Host terminates the transfer with an EOT command. The time constraint placed on the Host for data transfer is based on the format of the data. In the JT Fax format, approximately 10k of data can be buffered on the FAX. So, timing during transmission is only critical during the first initial stages of buffering. The initial stages require data to be loaded as fast as possible. If the data requires translation, the timing is more critical. The Host buffers 2 initial loads. The worst case scenario for ASCII and PCX is approximately 5 seconds between data loads at 14400 bps before data is lost. The data placed in DATA_AREA may be in one of three formats. These are: ASCII_FORMAT 00H PCX_3_FORMAT 01H JT_FAX_FORMAT 63H The formats are discussed in detail in Chapter 7. Characteristic Description EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host (load baud rate if desired) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . EOT - Host TRANSMIT - FAX BOARD_ACK - FAX PC_ACK - Host IDLE - Host When the Host is transmitting multiple pages and wants to control the page breaks, an EOP is issued instead of PC_ACK. To control the length of the page the min_page parameter should be used. RELATED FUNCTIONS: IDLE, EOT, PC_ACK, BOARD_ACK, SET_CARRIER_COMMAND, FAX_MODE_COMMAND, BUSY_COMMAND, ENHANCED_MODE_ON_COMMAND, dial modifiers ========================================================================== Chapter 6 Shared Memory Interface Description All functions, status codes, return codes, and data pass through the JT Fax shared memory interface. The interface address is selectable in 4k increments and is located between memory address 8000H to 0FFFFH (see the Hayes JT Fax 14400B Dual Installation Guide). If the C programming language is used for the Host program, then the compiler should pack the API structure on byte boundaries. This is accomplished in Microsoft C by using the following statement: #pragma pack (1) ************************************************************************** Shared Memory Interface Structure The shared memory interface structure is organized as follows: Note: This map is used with Fax A at offset 0 and Fax B at offset 800H. Offset Length Name Usage/Description -------------------------------------------------------------------------------------- 0000H-0005H ID Location of board address 0005H-0001H COMMAND Commands and Status 0006H-0001H RING_COUNT Ring to answer on 0007H-0001H CALL_MODE Transmit/Receive 0008H-0001H FILE_TYPE ASCII, PCX, JT Fax 0009H-0001H XMIT_FONT Resolution, Font number 000AH-0001H MIN_PAGE Force 11 inch page flag 000BH-003DH BUFFER_AREA Phone numbers & headers 0048H-0002H SECONDS Length of connection 004AH-0001H SPEAKER on, off, on till connect 004BH-0001H RET_CODE Completion code 004CH-0002H PAGES Number of pages sent 004EH-0002H DATA_LEN Length of valid data 0050H-0001H BAUD_RATE 2400, 4800, 7200, 9600, 12000, 14400 baud 0051H-0001H RESET_BOARD Reset the board 0052H-0001H STATUS_CODE Extended status 0053H-0001H LINE_COUNT Number of lines transmitted 0054H-0001H RCV_FILE_TYPE Receive file type 0055H-0002H RCV_LINE Lines per page received (ASCII) 0057H-0001H RESERVED Not used at this time 0058H-07A8H DATA_AREA Used for file data The following paragraphs describe the Shared Memory Interface fields: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ID Field where the product keyword is located. Set by Board. The ID field is used to locate the board at the start of a program. Memory can be searched from segment 8000H to F000H for the 'ASHER' keyword at each 2K boundary. In the JT Fax 14400B tool kit, FINDFAX.ASM file contains an assembler routine that locates the 'ASHER' string. This allows the Host program to locate the board in memory without knowing the exact memory location. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ COMMAND Field for command handshakes. Set by Host and JT Fax. The COMMAND byte is used to pass most commands to the board and some status bytes are returned through this byte. The status bytes are JT Fax 9600B compatible codes described in Chapter 3. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RING_COUNT Field for ring to answer count. Set by Host. Ring_count is a status byte used for the ring-to-answer-on count. The count allows the board to answer the call when a certain number of rings is reached. This byte should be set to 0FH if ring detection is not desired. For originate only applications and manual answers, a status command RING is provided in the first byte of buffer area. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CALL_MODE Field for answer or receive mode. Set by Host. Call_mode should be set prior to making or receiving a call. The call modes currently supported by the board are: Code Description --------------------------------- 00H Call to transmit a fax 02H Answer to receive a fax Note: This option is currently not supported. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ FILE_TYPE Field for specific file type. Set by Host. File_type should be set prior to a transmit. The file_type parameter determines the processing necessary for the JT Fax 14400B Dual to convert data to T.4 format. The field can have the following values: Code Description ------------------------- 00H ASCII_FORMAT 01H PCX _3_FORMAT 63H JT_Fax_FORMAT For additional information see File Formats in Chapter 7. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ XMIT_FONT Field for JT Fax font resolution. Set by Host. Xmit_font field is only used to transmit of data. The field should be set prior to all transmits, and is used to select the font for ASCII and high/low resolution for other types of transmits. If ASCII data is being sent in any font other than font0 (80/low) then that font must be loaded onto the board prior to the transmit. If any other form of data is being sent (i.e., PCX, JT Fax) then 00H and 01H should be used to indicate the resolution. Code Description ---------------------------------------------- 00H 80 character/line low resolution 01H 80 character/line high resolution 02H 132 character/line low resolution 03H 132 character/line high resolution For additional information see JT Fax Formats section Chapter 7. MIN_PAGE Field set for page minimum length. Set by Host. If min_page is zero when the transmit command is issued, all pages will be forced to be at least 11 inches long. If MIN_PAGE is set, the number of lines in linecount is used. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BUFFER_AREA Field for FAX ID, phone number. Set by Host, JT Fax and status messages. Buffer_area is an area used to pass the phone number to be dialed, the header line to put on the top of each page, fax ID and enhanced return codes. The default time-out-after-dial (binary) can also be loaded into buffer_area on start up or can be configured by using the SET_CARRIER_COMMAND function. For more information on buffer area see section Appendix E. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SECONDS Field for time of phases. Set by JT Fax. Seconds is a timer that resets to zero at the start of a call or answer and again after receiving the first carrier from the other end (to get a true connection time). The host has the option to reset the timer. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SPEAKER Field for speaker control. Set by Host. The Speaker byte controls operation of the speaker as follows: Code Description --------------------- 00H SPKR_ALWAYS_ON 01H SPKR_ON_TILL_CONNECT 02H SPKR_ALWAYS_OFF +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RET_CODE Field for errors and JT Fax 9600B status. Set by JT Fax. Ret_code is the error return code from a fax operation. For compatibility, the two 9600B status codes are returned in this field. The values are: Code Description ----------------------------- 0 Successful Transmit 1 No Dial Tone 2 No Carrier 3 Busy 7 Clipped The Handshaking/Compatibility return codes are: Code Description ------------------------------- 128 Bad DIS REC 129 Bad Training 130 Phase B Error 131 Bad MPS Response 132 Bad MCF Response 133 Bad DSC Response 134 Phase D Error 135 No PC Acknowledge 136 No Data Received 137 Page Error on Receive 138 Successful Receive Other Return Codes are described in Appendix B. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PAGES Field for number of pages. Set by JT Fax. Pages is a word that keeps a running count of the number of pages sent. It is updated during transmission and reception. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA_LEN Field for number of bytes in DATA_AREA Set by Host and JT Fax. Fax Data_len is a word that holds the number of data bytes valid in the data_area. It must be loaded prior to a load_data command. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BAUD_RATE Field for connect speed. Set by Host and JT Fax. Baud_rate is a byte that shows the connection speed. At the start of each transmission it defaults to 14400 BPS. For compatibility, the receive defaults to 9600 BPS. 14400 BPS receive can be obtained by issuing the FAX_144_MODE_ON API. The BAUD_RATE field has the following values: Code Description --------------------- 00H 2400 BPS 01H 4800 BPS 02H 7200 BPS 03H 9600 BPS 04H 12000 BPS 05H 14400 BPS The baud rate may be monitored for correct connect speed. Note: This rate may also be modified by the host for transmit speed. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RESET_BOARD Field for reset. Set by Host. This byte is used to reset the board after an error, or it can be done on exit to set the board to a known state. The API HARDWARE_RESET_COMMAND in this byte causes a full reset of the board, including memory testing and clearing and can take 5-6 seconds to complete. The API SOFTWARE_RESET_COMMAND causes a partial reset and does not clear memory. It disconnects the phone line and returns to command state. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS_CODE Field for enhanced status. Set by JT Fax. The status code field provides additional status for Fax transmission. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ LINE_COUNT Field for number lines. Set by Host. Line_count is a byte that gives the number of lines to put on the page before a page break. The function is only applicable when MIN_PAGE is set to 0 and during ASCII transmits. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RECV_FILE_TYPE Field used to indicate the type of file. Set by Host. The values are: Code Description ------------------------- 01H PCX_3_FORMAT 63H JT_FAX_FORMAT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RECV_LINE Field used to indicate the number of PCX lines recieved. Set by JT Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA_AREA Field for data transfer. Set by Host. This is the area used to buffer data out to the board. It is 1960 bytes long. ========================================================================== Chapter 7 File Formats This chapter describes the JT Fax file conversion formats. These formats include: PCX ASCII JT Fax. ***************************************************************************** PCX Conversion The PCX conversion supplied with JT Fax 14400B Dual is a receive "on-the- fly" conversion at all speeds supported. The data presented to the Host includes a PCX 3 header and data. All data is in black and white, 1-plane, 1 bit-per-pixel, xmax (horizontal axis) = 1727; color is not supported. Additional fields are provided for the PCX receive. These new fields are receive type (BYTE) at offset 55H and receive_lines at offset 56H (WORD). The following commands pertain to PCX conversion: REC_PCX_ON_COMMAND REC_PCX_OFF_COMMAND (default) The length of the PCX file (in lines) is reported in the new variable named RECV_LINES and is correct when the EOT is received from the fax. The RECV_LINES count should be placed in the PCX file by the Host. The offset into the PCX file for this count is 10 (zero relative) and is WORD value. The PCX_RECV_ON_COMMAND must be issued after setting Recvfile type to PCX. ************************************************************************** ASCII The following sections describe ASCII font management in JT Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Fonts The JT Fax 14400B Dual board gives the user the flexibility of 4 different fonts. These fonts are identified as font.0, font.1, font.2, and font.3. Font.0 is the default font and Fonts 0-3 are available as user defined fonts. The fonts are designed in two resolutions, low and high resolution. Low resolution is defined as an 18-bit by 16-row character cell. High resolution is defined by a 18-bit by 32-row character cell. All fonts are available in the JT FAX software toolkit under the files font.0, font.1, font.2, and font.3. Contact Hayes Customer Service, see Appendix I. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Mode There are two different modes for resolution, normal mode and compressed mode. In normal mode the character cell consists of 18 bits per character cell line. Normal mode is the default mode for the default font used by JT Fax. The JT Fax compressed mode consists of a character cell that is 13 bits-per-character line. Both modes support 80 and 132 columns. Below is a list of these fonts with their corresponding resolution. Font Name Resolution ----------------------------------------------------------- Low res faxfont.0 200x100 80 columns normal mode High res faxfont.1 200x200 132 columns normal mode Low res faxfont.2 200x100 80 columns compressed High res faxfont.3 200x200 132 columns compressed +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Font Modifications To modify these fonts, the programmer can execute the font generation program, fontcon.com. This program can be downloaded in the file faxfont.arc (contact Hayes Customer Service, see Appendix I). If the user wishes to create a custom font file without the use of the fontcon.com program, the fonts must be bit mapped as explained in the following paragraphs. The bit map is arranged in a "pixel line" format. The character must be converted into a bit-format byte aligned. Character tables start with the ASCII character for a space " " and end with an ASCII character for a "~". The character is assembled into a 4x16 byte matrix in low resolution and a 4x32 byte matrix for high resolution. All parts of the character cell must be represented. In lower case characters, the additional white space above the character must be included. For example, the lower case ASCII 'a' has several lines of white space above the 'a'. This must be included. Within each matrix cell, the font character is defined by 4 bytes per line by: low resolution = 18 bits < 22 bits unused > high resolution = 13 bits < 27 bits unused >. All unused bits are ignored and are set to a 0xff. For example, a '!' in low-resolution normal mode 4x16 80-column, with a bit set for white would be as follows: Row Bitmap Row Bitmap -------------------------------------------------------------------------------- 1 0xff, 0xff, 0xc0, 0xff (top space) 9 0xff, 0xf9, 0xc0, 0xff (char) 2 0xff, 0xf0, 0xc0, 0xff (char) 10 0xff, 0xff, 0xc0, 0xff (char) 3 0xff, 0xf0, 0xc0, 0xff (char) 11 0xff, 0xff, 0xc0, 0xff (char) 4 0xff, 0xf0, 0xc0, 0xff (char) 12 0xff, 0xf9, 0xc0, 0xff (char) 5 0xff, 0xf0, 0xc0, 0xff (char) 13 0xff, 0xff, 0xc0, 0xff (space) 6 0xff, 0xf0, 0xc0, 0xff (char) 14 0xff, 0xff, 0xc0, 0xff (space) 7 0xff, 0xf0, 0xc0, 0xff (char) 15 0xff, 0xff, 0xc0, 0xff (space) 8 0xff, 0xf9, 0xc0, 0xff (char) 16 0xff, 0xff, 0xc0, 0xff (space) The JT Fax font generation software offers the user the ability to create or modify the ASCII coded fonts used by the JT Fax products. The user will need to download FAXFONT.ARC and FONT.ARC from the HAYES BBS (see Appendix I). For development purposes, the programmer is advised to create a font sub- directory containing four sub-directories (one for each font), and copy the proper files into each sub-directory as follows: Directory Contents --------------------------------------------------------------- Font All directories below. Font 0 Low resolution normal 80 columns. Include FONT0.EXE, FONTSCRN, and FAXFONT.0. Font 1 High resolution normal 80 columns. Include FONT1.EXE, FONTSCRN, and FAXFONT.1. Font 2 Low resolution compressed 132 columns. Include FONT2.EXE, FONTSCRN, and FAXFONT.2. Font 3 High resolution compressed 132 columns. Include FONT3.EXE, FONTSCRN, and FAXFONT.3. To use the graphics editor, move to a font sub-directory, and type FONTX.EXE, where X is the font number to modify. The editor then appears, along with some instructions. EXAMPLE: C:/font/2 followed by: font2 This example illustrates the suggested sub-directory structure and the procedure for editing font2 (low resolution compressed). The FONTSCRN file is a graphic overlay for the font editor. When the "Which character to edit" prompt is displayed, you may enter a keyboard character. To enter a non-keyboard character, find its ASCII code, hold down the key and enter the ASCII code with the numeric keypad. To move about in the font field, use the cursor control keys. The instructions appearing on the screen guide you to edit a font. When the font is complete, enter to save it. The high resolution fonts allow editing the top and bottom half of each pixel in the font field. In the high resolution fonts, use T and B to paint or delete the Top or Bottom of a font element. As a font is modified, a FAXFONT.TMP file is created. FONTCON.COM is then converts the FAXFONT.TMP file into the format used by the JT FAX software. The syntax is: FONTCON FAXFONT.TMP FAXFONT.X The FAXFONT.X is the new file you created, and is now ready to be copied into your FAX directory for testing. EXAMPLE: c:\font\2> fontcon faxfont.tmp faxfont.2 The example converts the FAXFONT.TMP from sub-directory FONT2 and converts it to FAXFONT.2. Font generation may require several iterations of some character. This is normal, as fonts displayed on a CRT appear different than when received on a Fax machine. Note: Only one soft font can be downloaded. This is the font used by the Fax. Only one soft font at any given time can be downloaded and used. Soft Font cannot be used with the OEM_CODE command. ************************************************************************** JT Fax Format The JT Fax file format is based on a modified Huffman coding used in Group 3 facsimile preceded by an eight byte header. The Huffman coding schema is in Appendix A.) The header format is as follows: Offset Explanation --------------------------------------------------------------- 0 A zero byte 1 Either 0 or 40H. If the 40H bit is set, then the file is a high resolution (200x200) file. 2 reserved 3 reserved 4 reserved 5 reserved 6 reserved 7 reserved The Huffman data format is a data compression method based on run length encoding. One hundred and twenty-eight run lengths (64 white and 64 black), thirteen make-up codes, and an end-of-line (EOL) are defined by the ITU-T. These codes are available in Appendix A. The JT Fax only supports files of 1728 pixels per line, the only required format for a Group 3 fax machine. The EOL command is used to end every line in a fax-format file. It consists of 11 zero bits and a one bit. Additional zero bits, or fill bits, can be inserted prior to the EOL command. Although some JT Fax files use fill bits so that each line of fax data begins on a byte boundary, inclusion of fill bits is not necessary for any JT Fax family product. The JT Fax file is organized as follows: Eight byte header EOL Huffman compressed line EOL Huffman compressed line EOL . . . Huffman compressed line EOL Huffman compressed lines are generated using the tables in Appendix A. Huffman compression assumes that every line begins with a white run length, alternates to a black, back to white, up to an EOL. If a run length is greater than 63, then a make-up code is used. A make-up code is always followed by a run length of the same color, even if the length is zero. The Huffman codes are sent left-bit first (as seen in the table), but must be assembled so that the low-order bit in each byte is the first to send. The following example demonstrates this process: Assume the input line of data is: 30 white, 10 black, 130 white, 192 black, 1366 white From the table in Appendix A: 30 white = 00000011 10 black = 0000100 130 white = 128 white = 10010 (make up-code) + 2 white = 0111 192 black = 192 black = 010111(make-up code) + 0 black = 0000110111 1366 white = 1344 white = 011011010 (make-up code) + 22 white = 0000011 EOL = 000000000001 Put the bits in a stream: 00000011000010010010011101011100001101110110110100000011 000000000001 Break them out, eight bits at a time: 00000011-00001001-00100111-01011100-00110111-01101101- 00000011-00000000-0001 Reverse the bit-order: 11000000-10010000-11100100-00111010-11101100-10110110- 11000000-00000000-xxxx1000 The xxxx could be the first four bits from the next Huffman stream of data, or four additional 0s could be inserted on the other side of the 1, making the last byte 10000000. The final hex code for this line is: C0 90 E4 3A EC B6 C0 00 80 ========================================================================== Appendix A ITU-T T.4 Huffman Encoding This appendix defines the T.4 Huffman encoding used in JT Fax. Run Length White Code Black Code ------------------------------------------------ 0000 00110101 0000110111 0001 000111 010 0002 0111 11 0003 1000 10 0004 1011 011 0005 1100 0011 0006 1110 0010 0007 1111 00011 0008 10011 000101 0009 10100 000100 0010 00111 0000100 0011 01000 0000101 0012 001000 0000111 0013 000011 00000100 0014 110100 00000111 0015 110101 000011000 0016 101010 0000010111 0017 101011 0000011000 0018 0100111 0000001000 0019 0001100 00001100111 0020 0001000 00001101000 0021 0010111 00001101100 0022 0000011 00000110111 0023 0000100 00000101000 0024 0101000 00000010111 0025 0101011 00000011000 0026 0010011 000011001010 0027 0100100 000011001011 0028 0011000 000011001100 0029 00000010 000011001101 0030 00000011 000001101000 0031 00011010 000001101001 0032 00011011 000001101010 0033 00010010 000001101011 0034 00010011 000011010010 0035 00010100 000011010011 0036 00010101 000011010100 0037 00010110 000011010101 0038 00010111 000011010110 0039 00101000 000011010111 0040 00101001 000001101100 0041 00101010 000001101101 0042 00101011 000011011010 0043 00101100 000011011011 0044 00101101 000001010100 0045 00000100 000001010101 0046 00000101 000001010110 0047 00001010 000001010111 0048 00001011 000001100100 0049 01010010 000001100101 0050 01010011 000001010010 0051 01010100 000001010011 0052 01010101 000000100100 0053 00100100 000000110111 0054 00100101 000000111000 0055 01011000 000000100111 0056 01011001 000000101000 0057 01011010 000001011000 0058 01011011 000001011001 0059 01001010 000000101011 0060 01001011 000000101100 0061 00110010 000001011010 0062 00110011 000001100110 0063 001101000 00001100111 0064 11011 0000001111 0128 10010 000011001000 0192 010111 000011001001 0256 0110111 000001011011 0320 00110110 000000110011 0384 00110111 000000110100 0448 01100100 000000110101 0512 01100101 000000110110 0576 01101000 000001101101 0640 01100111 000000100100 0704 011001100 000000100101 0768 011001101 000000100110 0832 011010010 000000100111 0896 011010011 000000111000 0960 011010100 000000111001 1024 011010101 000000111010 1088 011010110 000000111011 1152 011010111 000000111010 1216 011011000 000000111011 1280 011011001 000000101000 1344 011011010 000000101001 1408 011011011 000000101010 1472 010011000 000000101011 1536 010011001 000000101100 1600 010011010 000000101101 1664 011000 000000110010 1728 010011011 000000110011 EOL 000000000001 000000000001 ========================================================================== Appendix B Return Codes The following paragraphs describe the correct time to read the RET_CODE field of the JT Fax API window. When the PC is finished receiving data from the JT Fax board, then the JT Fax issues an EOT in the Command field. The JT Fax board sends a BOARD_ACK in the Command field when the transmission is complete. At this time the PC should read the RET_CODE field of the JT Fax API window. If the command field changes to an error, the RET_CODE is valid. Some of the errors are fatal and some are operational. Fatal errors halt execution with an error flag while operational errors are less severe and will allow the Fax operation to continue. Operational errors are read at the end of a receive or transmit. Once an error occurs, Buffer area [0] can be checked for additional return code information. If available, the byte will be non-zero. Also, the status field can be checked to determine the state of the JT Fax. The following paragraphs describe the JT Fax Return Codes. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 00 MNEMONIC: SUCCESSFUL_TRANSMIT DESCRIPTION: A successful transmit occurred with no errors. This is a JT Fax compatibility code. RECOMMENDED ACTION: Fax was good. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 01 MNEMONIC: NO_DIALTONE DESCRIPTION: A dial command was issued with either a 'W' dial modifier or a wait for dialtone in byte 0 of the dial string. Fatal error. RECOMMENDED ACTION: Check cable connections and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 02 MNEMONIC: NO_CARRIER DESCRIPTION: A complete connection was not established. A NO_CARRIER error appears after the dial and before the Phase A completion. JT Fax compatibility. Fatal error. RECOMMENDED ACTION: Check phone number and retry call. Try enabling enhanced mode to determine the exact cause of error. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 03 MNEMONIC: BUSY DESCRIPTION: The called phone number was busy or a circuit was busy. Fatal error. RECOMMENDED ACTION: Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 04 MNEMONIC: PC_COMM_ERROR DESCRIPTION: Invalid response or command while in command state. Fatal error. RECOMMENDED ACTION: Check Host for problems. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 07 MNEMONIC: CLIP DESCRIPTION: An ASCII file was converted to T.4 data and a line was longer than 216 bytes (including spaces and tabs). This error only occurs during a FILETYPE - ASCII conversion during transmit. The error does not cause an abort to the transmit. Operational error. RECOMMENDED ACTION: Continue with fax or terminate call with a SOFT_RESET. Modify file before retransmitting. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 10 MNEMONIC: DIALING_ERROR DESCRIPTION: A dial command was issued and one of the characters in the dial string was invalid. Fatal error. RECOMMENDED ACTION: Check dial string and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 12 MNEMONIC: FONT_TOO_LARGE DESCRIPTION: The soft font file was too large for the soft font area. This error could also apply to the OEM code load. Fatal error. RECOMMENDED ACTION: Shorten soft font and retry. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 19 MNEMONIC: TRANSMIT_PAGE_ERROR DESCRIPTION: Transmit page was not received correctly. Operational error. RECOMMENDED ACTION: Retry call. Check remote fax machine and/or telephone line.. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 20 MNEMONIC: PHASE_A_ERROR DESCRIPTION: The transmitted Fax was not received correctly. Operational error RECOMMENDED ACTION: Retry call. Call Hayes Customer Service. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 21 MNEMONIC: NO_CNG_ERROR DESCRIPTION: No 1100 Hz CNG tone was detected from the Caller. If CNG detect is enabled this informs the user that a CNG was not detected. If CNG detect is not enabled then this error will not occur. Operational error. RECOMMENDED ACTION: Hang up the Fax call and use a voice connection. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 30 MNEMONIC: PHASE_C_ERROR DESCRIPTION: This a general error for Phase C. Operational error. RECOMMENDED ACTION: Retry Call. Call Hayes Customer Support. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 32 MNEMONIC: MAX_FRAME_ERR DESCRIPTION: The FAX handshake frame was too large for the JT Fax buffers. This is usually caused by a noisy line. Fatal error. RECOMMENDED ACTION: Check line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 35 MNEMONIC: LONG_LINE_ERROR DESCRIPTION: An error occurred in the reception of data. A line was received and decoded as being to long. This only occurs if the line is noisy. RECOMMENDED ACTION: Check phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 36 MNEMONIC: PERCENTAGE_ERROR DESCRIPTION: Percentage of data errors on receive versus the amount of correctly received data. Operational error. RECOMMENDED ACTION: Check line for connection or noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 40 MNEMONIC: PHASE_D_ERROR DESCRIPTION: A response from the remote machine was not received after transmit during the required time. Operational error. RECOMMENDED ACTION: Check line for connection or noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 60 MNEMONIC: DTMF_ERROR DESCRIPTION: A valid DTMF signal was not received. Operational error. RECOMMENDED ACTION: Check connection. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 61 MNEMONIC: NO_DTMF_TIMEOUT_ERROR DESCRIPTION: A manual DTMF command was issued. The activity timer expired with no DTMF. Operational error. RECOMMENDED ACTION: Check connection and line noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 62 MNEMONIC: VOICE_ERROR DESCRIPTION: An error occurred during the operation of a voice command. Fatal error. RECOMMENDED ACTION: Retry voice operation. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 122 MNEMONIC: HDLC_MIN_SIZE_ERROR DESCRIPTION: The HDLC frame of the T.30 handshake was shorter than expected. Invalid frame was received. Fatal error. RECOMMENDED ACTION: Check remote Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 123 MNEMONIC: HDLC_CRC_ERROR DESCRIPTION: The HDLC frame of the T.30 handshake did not have a good CRC. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 124 MNEMONIC: NEGOTIATING_TRAIN_DCN_ERROR DESCRIPTION: A DCN was received while the Fax was negotiating speed. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote Fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 125 MNEMONIC: HDLC_FRAME_TIMOUT_ERROR DESCRIPTION: A time-out occurred while waiting for the HDLC T.30 handshake. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote Fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 126 MNEMONIC: NO_DCS_REC DESCRIPTION: A DCS was not received from the caller. Caused by equipment malfunction at remote site. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 128 MNEMONIC: BAD_DIS_REC DESCRIPTION: A DIS received from the callee was in error. Possible remote equipment problems. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 129 MNEMONIC: BAD_TRAINING DESCRIPTION: An error occurred during the training phase of the call. Line quality does not support speeds available. Fatal error. RECOMMENDED ACTION: Check remote fax, phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 130 MNEMONIC: PHASE_B_ERROR DESCRIPTION: An error occurred during the negotiation phase of the call. This could be a failure to negotiate parameters. Fatal error. RECOMMENDED ACTION: Check type of remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 131 MNEMONIC: BAD_MPS_RESPONSE DESCRIPTION: In Phase D the negotiation for Multiple pages was in error. Operational error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 132 MNEMONIC: BAD_MCF_RESPONSE DESCRIPTION: A message confirmation after training did not occur. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 133 MNEMONIC: BAD_DCS_RESPONSE DESCRIPTION: A bad response from the DCS message caused this error. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 134 MNEMONIC: PHASE_D_ERROR DESCRIPTION: An error occurred during the operation of a voice command. Fatal error. RECOMMENDED ACTION: Check phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 135 MNEMONIC: NO_PC_ACK DESCRIPTION: A PC_ACK was not received in response to the LOAD_DATA_COMMAND. A 5 sec time-out error to the host. Operational error. RECOMMENDED ACTION: Fax may have errors. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 136 MNEMONIC: NO_DATA_RECEIVED DESCRIPTION: No data was received from the remote fax. Caused by a line drop or the remote fax abnormally terminated the call. RECOMMENDED ACTION: Check phone line. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 137 MNEMONIC: PAGE_ERROR DESCRIPTION: Page data was received in error from the remote fax. RECOMMENDED ACTION: Check phone line. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 138 MNEMONIC: SUCCESSFUL_RECEIVE DESCRIPTION: Fax was received successfully. RECOMMENDED ACTION: Ready for next fax transaction. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 243 MNEMONIC: ROCK_ERROR DESCRIPTION: This error indicates that the Rockwell chip is not responding. Operational error. RECOMMENDED ACTION: Turn off power and reinstall the board. If this does not correct the problem, contact Hayes Customer Service. ========================================================================== Appendix C Status Codes Status codes do not require a response from the Host. The code will reflect the state of the JT Fax 14400B Dual. It is not necessary to issue a PC_ACK command when receiving the status notification. However, the IDLE command in the Status Code field is recommended because it incorporates a more fault-tolerant coding algorithm. Status codes may be used to provide additional information during a fax call procedure. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 01 MNEMONIC: RING DESCRIPTION: A ring was detected during the dialing of number. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 02 MNEMONIC: SUBSCRIBER_INFO DESCRIPTION: CSI/TSI info is available in the buffer area. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 0E MNEMONIC: PHASE_E_START DESCRIPTION: Start of T.30 Phase E. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 10 MNEMONIC: PHASE_A_START DESCRIPTION: Phase A begins call establishment. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 11 MNEMONIC: PHASE_B_START DESCRIPTION: Phase B starts the initial negotiation of speed and format. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 12 MNEMONIC: PHASE_C_START DESCRIPTION: Start of Phase C for fax transmission. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 13 MNEMONIC: PHASE_D_START DESCRIPTION: Start of Phase D and post message handling. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 20 MNEMONIC: NEGOTIATING_SPEED DESCRIPTION: Speed negotiation is occurring during Phase B. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 21 MNEMONIC: CONNECT DESCRIPTION: Indicates that all handshaking is complete and fax data will be transmitted. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 22 MNEMONIC: VOICE_MODE DESCRIPTION: Notification of automatic voice mode is entered. ========================================================================== Appendix D T.30 Phase Descriptions Fax communication occurs in phases. As defined by the ITU-T the phases are: ---------------------------------------- Phase A Call Establishment Phase B Pre-message Procedure Phase C In-message Procedure Phase D Post Message Procedure Phase E Call Release The following sections describe the phases as they relate to the JT Fax 14400B Dual in the default configuration. ************************************************************************** Phase A The calling fax (caller) goes "off hook" and listens for dialtone. After dialtone has been detected, dialing the phone number starts. The dialing call progress includes the detection of the ring and busy signals. In addition to the call progress, the T.30 1100-Hz CNG tone is transmitted with a cycle time of 0.5 seconds on and 3 seconds off. Transmission of the CNG cycle continues until the receiving fax (callee) transmits a T.30 2100 Hz CED. Once the CED is detected, the caller waits for a silent period. The silent period terminates Phase A for the caller. The callee detects a "ring" signal and goes to off-hook. 1.8 seconds after going "off hook", the callee transmits the 2100-Hz CED for 2.8 seconds. The ending of the CED terminates Phase A for the callee. ************************************************************************** Phase B After a silent period of 75 milliseconds the receiver transmits a CSI, NSF and a DIS frame. The DIS frame contains the negotiating parameters. Once the DIS is transmitted, the receiver looks for a response from the caller. During a 3.5 second time-out period, the receiver receives a DCS frame from the caller. Once a mode has been selected from the DCS frame, the caller transmits a training sequence 75 milliseconds later. If the training sequence is within error parameters, the receiver transmits a TCF. The TCF marks the end of Phase B for the receiver. The caller detects a silent period and starts the pre-message handshake. The handshake begins with the reception of the DIS frame. After the reception of the DIS frame, the TSI and DCS frames are transmitted. The caller sends a training signal for 75 milliseconds after sending the DCS frame. The training signal has a duration of 1.5 seconds. If the signal was received without errors by the receiver, a CFR frame is received. The reception of the CFR frame marks the end of Phase B for the caller. ************************************************************************** Phase C The caller transmits the Fax message 75 milliseconds after the CFR. The format of the message is T.4 Huffman encoded data. A RTC sequence will be sent at the end of the page to signal the receiver to transition into Phase D. The receiver receives the Fax message and examines the T.4 codes for errors. A "TIC" mark will be printed in the left most column to signify a line error. When a RTC is received, the receiver transitions into Phase D. ************************************************************************** Phase D The caller transmits one of the following: EOM MPS to start the procedure to re-enter Phase C EOP frame to proceed to Phase E. After receipt of a MCF from the receiver, the caller goes to either Phase E or re-enters Phase C. To re-enter Phase C, the caller transmits another train sequence. The caller looks for a confirmation of the retrain in the form of a RTP frame. Once an RTP is received, the caller re-enters Phase C. Exiting to Phase E requires only the reception of a MCF. The receiver waits for a EOM, MPS or EOP frame. Upon receiving a MPS or EOM frame, the receiver transmits a MCF. After transmitting the MCF frame, the receiver looks for a training signal. If the signal is within error limits, the receiver transmits a CFR. Transmitting the CFR marks the end of Phase D and the receiver re-enters Phase C. If an EOP frame was received, the receiver transmits a MCF and proceeds to Phase E. ************************************************************************** Phase E The caller sends a DCN frame to the receiver and disconnects the telephone line. The receiver waits for the reception of a DCN frame. After receiving a DCN, the receiver disconnects the telephone line. ========================================================================== Appendix E Buffer Area Layout The BUFFER_AREA is a multipurpose area used in several commands. The following chart defines the buffer area during different stages of a Fax operation. Operation Layout -------------------------------------------------------------------------------- XMIT - TelephoneNumber BYTE 0 - 60 used for phone number. XMIT - Header BYTE 0 - 19 used for TSI/CSI information (optional if TSI/CSI command used) BYTE 55 used for page number; followed by space BYTE 56-58 padded with spaces. All other operations require the following: BYTE 0 location WORD 0 - 1 location in INTEL Format LONG 0 - 3 location in INTEL Format The buffer area is also used to transmit default CSI/TSI information. A zero in buffer [0] prohibits the buffer area CSI/TSI data from being transmitted. ========================================================================== Appendix F OEM Code Guidelines JT Fax provides a method to off-load code from the Server and run the code in the JT Fax while JT Fax is idle. Use the following guidelines to offload code: 1. The code must be in 8088 assembly language. 2. Code segment must be 0H. 3. Stack frame and registers must be preserved. 4. Code size including data must not be greater than 28 KB. 5. The starting address for code must be 0:8800H. 6. Soft fonts are not available while using OEM code. 7. Upon entry into OEM code the following registers contain values es: Points to the JT Fax code segment ax: Points to the OEM entry point for executing JT Fax commands bx: Points to timer service routine for user timers cx: Points to the OEM exit point ss: Points to Stack Segment sp: Points to Stack pointer. 8. Code must be in binary form. 9. Timer interrupts continue to run. ========================================================================== Appendix G Command Codes The following chart presents the JT Fax commands in numerical order by command code. Code Command --------------------------------------------- 00H IDLE_STATUS 01H XMIT_COMMAND 02H BOARD_ACK_STATUS 03H LOAD_DATA_COMMAND 04H LOAD_FONT_COMMAND 05H PC_ACK 06H ERRFLAG 08H EOPFLAG 0FH EOTFLAG 10H MANUAL_REC_COMMAND 10H RECVINIT 20H SET_CARRIER_COMMAND 21H STATUS_COMMAND 22H REC_PCX_ON_COMMAND 23H REC_PCX_OFF_COMMAND 24H ON_HOOK_COMMAND 25H OFF_HOOK_COMMAND 26H FAX_MODE_COMMAND 27H MODEM_MODE_COMMAND 28H DTMF_ON_COMMAND 29H DTMF_OFF_COMMAND 2AH DTMF_ON_TIME_COMMAND 2BH DTMF_OFF_TIME_COMMAND 2CH DTMF_DIAL_COMMAND 2DH PULSE_DIAL_COMMAND 2EH NO_BUSY_COMMAND 2FH BUSY_COMMAND 30H HARDWARE_RESET_COMMAND 31H SOFTWARE_RESET_COMMAND 32H PULSE_INTER_COMMAND 33H RESET_DATA_PUMP 34H CNG_ON_COMMAND 35H CNG_OFF_COMMAND 36H CED_ON_COMMAND 37H CED_OFF_COMMAND 3AH PULSE_BREAK_COMMAND 3BH PULSE_MAKE_COMMAND 3EH SPEAKER_ON_COMMAND 3FH SPEAKER_OFF_COMMAND 4EH EXTEND_STATUS_ON _COMMAND 4FH EXTEND_STATUS_OFF_COMMAND 50H FAX_144_MODE_ON_COMMAND 51H FAX_144_MODE_OFF_COMMAND 52H ENHANCED_MODE_ON _COMMAND 53H ENHANCED_MODE_OFF_COMMAND 54H SET_USER_TSI_COMMAND 55H SET_USER_CSI_COMMAND 5FH SETUP_VOICE_COMMAND 60H CNG_DETECT_ON_COMMAND 61H CNG_DETECT_OFF_COMMAND 62H PLAY_START_COMMAND 63H PLAY_END_COMMAND 64H REC_START_COMMAND 65H REC_STOP_COMMAND 66H EOVFLAG 67H GAIN_UP_COMMAND 68H GAIN_DOWN_COMMAND 69H SET_GAIN_COMMAND 6AH SET_SAMPLE_RATE_COMMAND 6BH SET_SLEW_RATE_COMMAND 6CH SILENCE_DETECTED_STATUS 6FH SET_ACT_TIMER_COMMAND 70H DTMF_DETECT_STATUS 71H RETURN_TO_DATA_COMMAND 72H RETURN_TO_COMMAND 73H DTMF_DETECT_ON_COMMAND 74H DTMF_DETECT_OFF_COMMAND 75H GET_DTMF_COMMAND 76H EODFLAG 77H ONLINE_VOICE_REC_ON_COMMAND 78H ONLINE_VOICE_REC_OFF_COMMAND 79H OEM_CODE_COMMAND 7AH OEM_LOAD_COMMAND 0F0H GOOD_INIT 0F1H BAD_RAM 0F2H BAD_ROM 0FFH BOARD_SYNC_COMMAND ========================================================================== Appendix H References CCITT Blue Book, Volume VII - Facscicle VII.3, "Terminal Equipment and Protocols for Telematic Services", Recommendations T.0-T.63, IXth Plenary Assembly, Melbourne, November 14-25,1988. Rockwell R144EFX bps MONOFAX Modem Designers Guide, Document No. 29800N46, November 1990. FAX, "Digital Facsimile Technology and Applications", McConnell, Bodson and Schaphorst, Second Edition, Artech House, Norwood, MA, 1992. ========================================================================== Appendix I Hayes Customer Service To obtain Warranty/Guarantee Service, call or write to the appropriate Hayes Customer Service location listed below for a return authorization number, and then return the product to that location along with (a) the return authorization number, (b) proof of date of purchase, and (c) your mailing address and telephone number, postage prepaid. Please note that if the product is returned without proof of purchase or after the expiration of the warranty/guarantee coverage period, Hayes will, at its option, repair or replace the product and charge you the then effective Hayes price for out-of-warranty/guarantee service of the product, unless Hayes has discontinued the manufacture or distribution of the product because of technical obsolescence. Americas Region Hayes Microcomputer Products, Inc. Attention: Customer Service P.O. Box 105203 Atlanta, Georgia 30348-5203 Telephone: (404) 441-1617 Telefax: (404) 449-0087 Telex: 703500 HAYES USA Online with Hayes BBS: (404) HI-MODEM or (800) US-HAYES and Hayes forums on CompuServe (GO HAYES) and GEnie information services. Note: If the carrier requires a street address, direct returns to the following address: Hayes Microcomputer Products, Inc. Attention: Customer Service 5953 Peachtree Industrial Blvd. Norcross, Georgia 30092 Asia Region Hayes Microcomputer Products, Inc. 39/F, Unit B, Manulife Tower 169 Electric Road, North Point, Hong Kong Telephone + 852 887-1037, Telefax + 852 887-7548 Telex: 69381 HAYES HX Online with Hayes BBS: + 852 887-7590 Note: This version of the "JT Fax 14400B Dual Application Developer's Guide" is a special version edited for bulletin-board downloading. As a plain ASCII character file, it therefore cannot contain any of the graphic elements provided in the printed version. The following graphic characters are used to denote the start of Chapters, 1st Level Headings, 2nd Level Headings, and Table Headings: Chapter Headings are preceded by: ========================================================================== 1st Level Headings are preceded by: ************************************************************************** 2nd Level Headings are preceded by: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Table Headings are separated from table listings by: ----------------------------------------------------------------------------- ============================================================================= CHANGE RECORD: Original ========================================================================== Chapter 1 Introduction The Hayes JT Fax 14400B Dual is a board level Fax product developed specially for "high end" server environments where throughput is a major concern. The JT Fax 14400B Dual contains two independent 14.4 KBPS Group 3-compatible fax modems, providing an interface directly to the PC ISA bus. Both fax modems interface to the host software at the speed of the ISA bus specification (i.e., 4-8 MHz). Data transfer between JT Fax and the host software can occur at the MBPS rate. In comparison, most serial based facsimile units can only transfer data in the KBPS range. Considering speed alone, the JT Fax 14400B Dual is ideal for server applications. Additional functionality is added to decrease the burden on the application software and thus the host computer. These features include: automatic T.4 encoding and T.30 handshakes receive Fax real time T.4 to PCX type 3 conversion Fax speeds of 2400 to 14400 BPS digital voice transmit and receive record/playback DTMF transmit and detection. The JT Fax 14400B Dual is designed with a simple high-speed interface. The interface does not require that the application developer know T.4 encoding or T.30 handshake protocols for ITU-T (formerly CCITT) Group 3 facsimiles. The JT Fax 14400B Dual is capable of performing all the encoding and decoding required to complete a fax call. However, if the application developer is comfortable with the encoding and decoding of the T.4 formatted data, the JT Fax 14400B Dual is versatile enough to handle this encoded data. This Application Developers Guide describes the programming procedure that comprises the JT Fax 14400B Dual Application Programming Interface (API). A list of the functions is provided along with the necessary procedure to implement the functions. Throughout, the guide presents example routines using the elements of the functions to assist the programmer with the application. Included in Appendix G is a quick reference guide of the Command Codes indexed by alphabetical listings and by numeric listing. Also available with the JT Fax 14400B Dual is the developers toolkit, which contains working Fax software with source code. Familiarity with "C" and assembly language is required to use the toolkit. Contact Hayes Customer Service for information about obtaining the JT Fax Toolkit. Distinction: JT Fax 14400B Dual is the product described in this Guide. JT Fax is a standard technology in the PC fax industry. The term fax refers to the facsimile technology. ************************************************************************** Manual Organization This Application Developer's Guide is arranged as follows: This Application/Developers Guide is arranged as follows: Chapter 1 Introduction describes the product features and the contents of the remainder of this Guide. Chapter 2 Theory of Operation briefly presents the hardware and firmware used to develop the JT Fax 14400B Dual. Chapter 3 JT Fax Toolbox describes the concepts, constructs, and structures necessary to develop API software for the JT Fax 14400B Dual. Chapter 4 Voice and DTMF Detect describes the voice and DTMF operating modes available with the JT Fax 14400B Dual. Chapter 5 Command Reference presents an alphabetical listing of all command codes available in the JT Fax API. Chapter 6 Shared Memory Interface Description introduces functions, status codes, return codes and data that is passed through the Shared Memory Interface. Chapter 7 File Formats describes the JT Fax file conversion formats. Appendix A ITU-T T.4 Huffman Encoding describes the T.4 Huffman Encoding process used by JT Fax. Appendix B Return Codes describes the timing JT Fax requires to read a return code. The appendix also includes a summary of the JT Fax Return Codes. Appendix C Status Codes provides a summary of the JT Fax Status Codes. Appendix D T.30 Phase Descriptions describes fax call processing techniques used by JT Fax. Appendix E Buffer Area Layout describes the Buffer Area used by several of the JT Fax commands. Appendix F OEM Code Guidelines defines the methodology JT Fax employs to offload code from a fax server. Appendix G Command Codes provides a complete listing of the JT Fax Command Codes in numerical order. Appendix H References lists references used in the development of the product. Glossary Glossary defines terms used in this guide. ************************************************************************** Definitions The following terms are used in this documentation: Term Definition -------------------------------------------------------------------- Host The Program written to interface with the JT Fax JT Fax, Fax The JT Fax 14400B Dual board API Application Programming Interface API Block Shared memory window BPS Bits per second WORD 2 bytes LONG 4 bytes Additional definitions are listed in the Glossary. ========================================================================== Chapter 2 Theory of Operation The JT Fax 14400B Dual board includes two, 14400-baud, Group 3 facsimile modems with voice and DTMF capabilities. The facsimile modems are divided into two independent and separate parts, Fax A and Fax B. Each Fax has an independent processor, PC address interface, data pump and telephone line interface (TELCO) section. Both modems share a single PC bus interface and a speaker connection. The speaker volume is controlled by a potentiometer on the back of the unit. Speaker on/off controls are available for both FAX A and B through functions. Fax A has the additional feature of a microphone jack. The microphone jack is provided for voice messaging applications. ************************************************************************** Shared Memory Interface - API Block The JT Fax interfaces to the PC through a shared memory interface. Access to the shared memory API Block is accomplished by two steps. Step 1: Set the memory base address set with the DIP switch (see the Hayes JT Fax 14400B Dual Installation Guide) on the JT Fax 14400B Dual board. Step 2: Scan the memory between addresses 640k and 1M for the keyword "ASHER". Once the keyword is found, the keyword address marks the beginning memory address of the JT Fax API Block. The memory address is "blocked out" in a 4 Kb section. The starting address is Fax A. Fax A utilizes the first 2 Kb for an API Block. The adjacent 2K of memory is allocated to Fax B's API Block. The shared memory interface requires no interrupt vectors to the PC, no serial port, and no drivers. The application communicates with the JT Fax shared memory using a polled interface method. Polling activation and frequency is host dependent and is determined by the application. The handshake required to communicate with JT Fax 14400B Dual utilizes the JT Fax protocol structure. The JT Fax protocol is an ACK-ACK type protocol. All data and commands use this protocol. Chapter 5 provides protocol examples for each command. The API Block contains memory windows for command protocol, control, configuration, and data. The Shared Memory Interface (see Chapter 6) details the API block. The API block's most important asset is the 1960 byte buffer for transmitting and receiving fax data. This allows additional time for the host to perform other activities. In addition, the JT Fax has a 9K buffer for transmitting and receiving Fax data. The transmit and receive capability of the JT Fax 14400B Dual board offers two modes of operation for the host: Manual and Automatic. Manual requires the host to start the initial call/answer procedure by issuing commands that force the Fax into the "off-hook" condition. The remainder of the call/answer is automatic. In the Automatic procedure, the call/answer is handled by issuing the appropriate transmit and receive commands. The "off-hook" condition is controlled by the Fax. ************************************************************************** Transmitting Transmitting with the JT Fax 14400B Dual is straight-forward since the modem automatically executes the T.4 and T.30 handshake. The host is only responsible for the phone number, data to be transmitted, and the simple handshake protocol to JT Fax and the host. The following is a high level Program Design Language (PDL) example demonstrating a transmit. send SYNC_COMMAND (only after power up ) wait for response GOOD_INIT write to configure API block write phone number in BUFFER_AREA send XMIT_COMMAND wait for response BOARD_ACK_STATUS write header information into BUFFER_AREA send PC_ACK wait for response LOAD_DATA_COMMAND write data to DATA_AREA send PC_ACK continue to write data till END_OF_FILE is reached send EOT_FLAG wait for response BOARD_ACK_STATUS check ret_code TRANSMIT_SUCCESSFUL send PC_ACK A C programming language example of the transmit procedure can be found in the JT Fax Toolkit found on the Online with Hayes BBS in the file JT_TX.C. The JT Fax 14400B Dual can have a manual dial if required. The host is required to dial the telephone number and place an "M" in the first byte of the automatic dial string. The "M" tells the JT Fax not to dial a telephone number. The JT Fax continues with the standard call progress. The manual handshake is identical to the automatic handshake. ***************************************************************************** Receiving The receive procedure for JT Fax 14400B Dual requires the host to monitor the Fax for an indication of a call. The host sets the number of rings to allow before answering in the RING_COUNT field of the API block. Answering the call and T.30 handshakes are automatic. Once the RING_COUNT is matched, the host receives a RECVINIT in the COMMAND field. The RECVINIT is the notification that an incoming call is being answered. After the receiver initializes, the Fax issues a LOAD_DATA_COMMAND. The host should retrieve the data and respond with a PC_ACK. The same handshake continues until the last byte of data for the page or a transmission. To end transmission, the Fax issues an EOT command to the host. The EOT command concludes the handshake for the receive. The following is a PDL example demonstrating a fax receive: send SYNC_COMMAND ( only after power up ) wait for response RECVINIT send PC_ACK wait for response LOAD_DATA_COMMAND retrieve data from DATA_AREA send PC_ACK continue procedural handshake until response EOT_FLAG retrieve data from DATA_AREA send PC_ACK wait for response BOARD_ACK_STATUS check RET_CODE SUCCESSFUL_RECEIVE send PC_ACK A C programming language example of the receive procedure can be found in the JT Fax Toolkit found on the Online with Hayes BBS under the file JT_RX.C. The manual receive allows the host to determine when and if the call will be answered. Rings are detected by an outside source or by the extended status code "RING". When the required number of rings is reached, the host issues the MANUAL_RECEIVE_COMMAND. Note: To disable automatic detection, it is required to set RING_COUNT to 0FH. The remaining receive handshake procedure is identical to the automatic answer mode. ========================================================================== Chapter 3 JT Fax Toolbox This section establishes the concepts, constructs, and structures necessary to develop API software. The items in capital letters are the specific functions whose corresponding command values are found in the JT Fax 14400B command set in Chapter 5. The JT Fax 14400B Dual uses two contiguous memory blocks, each of which is 2K bytes long. The API Blocks, functions, return codes and status codes are discussed in separate sections of this Guide. In those Chapters, individual items are in alphabetical order for convenience. In the following sections, the items are grouped by function to clarify what functions are available. ************************************************************************** API Block - Shared Memory The API entry point for the JT Fax 14400B is the user selectable shared memory window. For backward compatibility, most of the elements of this structure are identical to the JT Fax 9600B. The only changes implemented to this structure are related to the new features of the JT Fax 14400B Dual. The changes are in the field previously defined as RESERVED and in one field not used in 9600B (RESET_PC). The new fields are STATUS_CODE, RCV_FILE_TYPE and RCV_LINES. The following chart describes the available fields: Offset Length Name Usage/Description ----------------------------------------------------------------------- 0000H-0005H ID Location of board address 0005H-0001H COMMAND Commands and Status 0006H-0001H RING_COUNT Ring to answer on 0007H-0001H CALL_MODE Transmit / Receive 0008H-0001H FILE_TYPE ASCII, PCX, JT Fax 0009H-0001H XMIT_FONT Resolution, Font number 000AH-0001H MIN_PAGE Force 11 inch page flag 000BH-003DH BUFFER_AREA Phone numbers & headers 0048H-0002H SECONDS Length of connection 004AH-0001H SPEAKER On, off, on till connect 004BH-0001H RET_CODE Completion code 004CH-0002H PAGES Number of pages sent 004EH-0002H DATA_LEN Length of valid data 0050H-0001H BAUD_RATE 2400, 4800, 7200, 9600, 12000, 14400 baud 0051H-0001H RESET_BOARD Reset the board 0052H-0001H STATUS_CODE Extended status 0053H-0001H LINE_COUNT Number of lines transmitted 0054H-0001H RCV_FILE_TYPE Receive file type 0055H-0002H RCV_LINE Lines per page received 0057H-0001H RESERVED Not used at this time 0058H-07A8H DATA_AREA Used for file data Note: H indicates hexadecimal code. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 9600 Compatibility For backward compatibility, the API set published with the JT Fax 9600B has been fully implemented. These functions use the Command field and are provided here for reference. Status Description ------------------------------------------------------------------ EOTFLAG End of transmission EOP End of page INIT Initialize the board LOAD_DATA_COMMAND Begin transmit of Fax LOAD_FONT_COMMAND Load soft font RECVINIT Begin reception of Fax XMIT_COMMAND No transmission in progress The JT Fax 9600B also included some status and PC handshake codes in the Command field. These are fully implemented for backward compatibility. The codes are provided here for reference. Command Description ------------------------------------------------------------------------------ BAD_RAM RAM test failed BAD_ROM ROM test failed BOARD_ACK_STATUS Board returns when function complete BOARD_SYNC_COMMAND Transition from initialization to command ERROR An error has occurred GOOD_INIT Board passed self test IDLE_STATUS No transmission in progress PC_ACK PC returns when function is complete +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 14400B Facsimile API The JT Fax 14400B API set is an enhanced version of the 9600B API set. All of the 9600B functions are supported. The following chart lists the facsimile API commands supported: Command Description ------------------------------------------------------------------- EOTFLAG End of transmission EOP_FLAG End of page BOARD_SYNC_COMMAND Initializes the board LOAD_DATA_COMMAND Begin transmit of Fax LOAD_FONT_COMMAND Load soft font RECVINIT Begin reception of Fax XMIT_COMMAND No transmission in progress +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 14400B Configuration API The JT Fax 14400B Dual Configuration functions were not available in the JT Fax 9600B command set. These configuration functions allow the host to customize the operation of the JT Fax 14400B Dual board. The following chart lists the configuration commands: Command Description ---------------------------------------------------------------------- BUSY_COMMAND Look for busy DTMF_OFF_TIME_COMMAND DTMF off time DTMF_ON_TIME_COMMAND DTMF on time ENHANCED_MODE_OFF_COMMANDDisable 14400B modes ENHANCED_MODE_ON_COMMAND Enable all 14400B modes EXTEND_STATUS_OFF_COMMAND Disable extended status EXTEND_STATUS_ON_COMMAND Enable extended status FAX_144_MODE_OFF_COMMAND Disable receive 14400 kbps FAX_144_MODE_ON_COMMAND Enable receive 14400 kbps FAX_MODE_COMMAND Enable JT Fax Mode (testing) MODEM_MODE_COMMAND Disable Fax and enable Modem NO_BUSY_COMMAND Do not look for busy PULSE_INTER_COMMAND Interdigit time REC_PCX_OFF_COMMAND Disable receive PCX format REC_PCX_ON_COMMAND Enable receive PCX format SET_CARRIER_COMMAND Time to wait for carrier STATUS_COMMAND Enable the 14400B status USER_CSI_COMMAND Initializes CSI USER_TSI_COMMAND Initializes TSI +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Voice Commands The Voice mode allows the recording and playback of non-compressed voice messages. During Phase A of a call, the Voice mode is entered after a user definable period of silence. (See Appendix D for a detailed description of JT Fax fax phases). After a period of silence, the user is notified of the "silent period" (SILENCE_DETECTED status) and is provided with a number of options. In addition, DTMF detect is automatically enabled. Command Description ------------------------------------------------------------------------------- CLEAR_VOICE_COMMAND Disables voice mode GAIN_DOWN_COMMAND Decrements gain increment by 1 dB (See SET_GAIN_COMMAND) GAIN_UP_COMMAND Increments the gain increment by 1 dB (See SET_GAIN_COMMAND) PLAY_END_COMMAND End voice playback PLAY_START_COMMAND Start voice play back RECORD_START_COMMAND Start recording voice RECORD_STOP_COMMAND Stop recording voice RETURN_TO_COMMAND Return to command state from voice mode RETURN_TO_DATA_COMMAND Return to Fax state from voice mode SET_ACT_TIMER_COMMAND Sets the time to wait for CNG tone SET_GAIN_COMMAND Sets the gain increment SET_SLEW_RATE_COMMAND Sets the "fall off rate" for voice signal SET_VOICE_MODE_COMMAND Enables voice mode and CNG detect TX_DTMF_COMMAND Transmit DTMF tones +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Utility Functions Some additional functions were added to aid in testing and debugging. The utility functions provide some of the low-level commands (primitives) used by the JT Fax 14400B to operate the hardware components. The JT Fax 14400B must be in FAX_MODE before any of the utility commands can be used. Caution: Some of these commands change the configuration of the Data Pump. If a change occurs to the data pump configuration, then a hardware reset will restore the values. Command Description ------------------------------------------------------------------ CED_OFF_COMMAND Turn off CED tone CED_ON_COMMAND Turn on CED tone CNG_OFF_COMMAND Turn off CNG tone CNG_ON_COMMAND Turn on CNG tone DTMF_DIAL_COMMAND Dial a DTMF number DTMF_OFF_COMMAND Turn off a DTMF tone DTMF_ON_COMMAND Turn on a DTMF tone OEM_CODE_COMMAND Execute OEM code onboard OEM_LOAD_COMMAND Load OEM code onboard OFF_HOOK_COMMAND Connects phone line ON_HOOK_COMMAND Disconnects phone line PULSE_BREAK_COMMAND Sets the Break Time PULSE_DIAL_COMMAND Pulse dial a number PULSE_MAKE_COMMAND Sets the Make Time RESET_DATA_PUMP_COMMAND Resets the data pump SPEAKER_OFF_COMMAND Turn off the speaker SPEAKER_ON_COMMAND Turn on the speaker ************************************************************************** Return Codes The return codes are enhanced for the JT Fax 14400B. In addition to the old JT Fax 9600B error codes, enhanced codes are available for more accurate problem determination during a FAX call. The standard JT Fax 9600B return codes include two status codes, and the remaining codes are error return codes. The return codes are listed in the following table. Error Code Description -------------------------------------------------------------------------------- BAD_DCS_RECEIVE Error in DCS data BAD_DIS_RECEIVE Bad DIS was received BAD_MCF_RESPONSE Messages not confirmed BAD_MPS_RECEIVE Error in MPS frame BAD_TRAINING Errors received in training BUSY Busy signal was detected CLIPPED ASCII to T4 line too long NO_CARRIER No connection was established NO_DATA_RECEIVED No data received within time limit NO_DIALTONE No dialtone reported in time limit NO_PC_ACK No PC acknowledge within time limit PAGE_ERROR Error in transmit page or receive page PHASE_D_ERROR Error occurred in Phase D SUCCESSFUL_RECEIVE Receive was successful SUCCESSFUL_TRANSMIT Transmit was successful The enhanced mode can be enabled/disabled by the following commands: ENHANCED_MODE_ON ENHANCED_MODE_OFF (default). The additional enhanced return codes are listed in the following table. Error Code Description ------------------------------------------------------------------------------ ABORT_ERROR Callee aborted call DCN_RECEIVED_ERROR Unexpected DCN received DIALING_ERROR DTMF digit in error DTMF_ERROR Tone was not DTME DTMF_TIMEOUT_ERROR DTMF tone was not available during timeout FAXIT_ERROR Error during fax transmission FONT_TOO_LARGE_ERROR Soft font too large HDLC_CRC_ERROR HDLC frame had bad CRC HDLC_FRAME_TIMEOUT_ERROR No HDLC frame in time limit HDLC_MIN_SIZE_ERROR Facsimile control frames had incorrect size LONG_LINE_ERROR Line too long in ASCII to Huffman MAX_FRAME_ERROR Facsimile control frames had incorrect size NEGOTIATING_TRAIN_DCN_ERROR DCN received during training NO_CNG_ERROR No CNG detected in received mode NO_RECEIVE_DCS_ERROR No DCS received PERCENTAGE_ERROR Errors in line exceeded percentage limits PHASE_A_ERROR Error occurred in Phase A PHASE_B_ERROR Error occurred in Phase B PHASE_C_ERROR Error occurred in Phase C PHASE_E_ERROR Error occurred in Phase E PHASE_E_TIMEOUT Time-out during handshake Phase E ROCK_ERROR Error in DSP chip VOICE_ERROR Error in voice procedures ************************************************************************** Status Codes In addition to the enhanced error codes, enhanced status messages are available. Since status codes do not require a response or action, the codes are reported in the STATUS_CODE. Status Description ---------------------------------------------------------- CONNECT Connection established NEGOTIATING_SPEED Negotiating connect speed PHASE_A_START Phase A started PHASE_B_START Phase B started PHASE_C_START Phase C started PHASE_D_START Phase D started RING Ring detected SUBSCRIBE_INFO CSI/TSI information available in buffer area ========================================================================== Chapter 4 Voice and DTMF Detect The voice and DTMF detect option of the JT Fax 14400B Dual has a Manual and an Automatic operating mode. Automatic requires a connection while Manual may be initiated in an off- line or on-line state. The Automatic DTMF/VOICE detection for JT Fax 14400B Dual detects DTMF/VOICE during the Phase A (answer mode) of a call. Enable the CNG_DETECT_ON_command for the automatic option. To disable the automatic mode, issue the CNG_DETECT_OFF_COMMAND. After a user-defined period of silence (no CNG tone), the JT Fax 14400B Dual enters DTMF/VOICE mode. During this stage, the user has the following options: detecting DTMF tones returning to data mode and continuing to answer Fax calls (i.e., send CED) executing voice commands returning to command state. The Manual mode only requires setting the options for DTMF/VOICE and the specific command to be issued. Manual mode is independent of connection status. ************************************************************************** DTMF Detect Automatic DTMF detection is accomplished when the JT Fax 14400B Dual is in the DTMF/VOICE on-line detect mode. The JT Fax 14400B Dual automatically searches for DTMF tones. If a DTMF tone is found, the tone value is placed in the first byte of the Data_Area and a DTMF_DETECT_STATUS is written into the API command block at location COMMAND. The JT Fax 14400B Dual waits until the Host retrieves the DTMF value and issues a PC_ACK command before searching for more DTMF tones. The manual option provides the capability of entering DTMF detect mode from command state. This is independent of connect status. The JT Fax 14400B Dual operates similarly to the automatic DTMF detect. The difference is that the Host must cancel the DTMF detect search with an EOD command. The JT Fax 14400B Dual issues a BOARD_ACK_COMMAND in response. The option for CNG_DETECT does not have to be enabled for the manual DTMF detect. However, DTMF detect option does need to be enabled for manual and automatic operation. The DTMF tones detected and reported to the Host are: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *, #, A, B, C, D. Commands available for Automatic operation are: CNG_DETECT_ON_COMMAND DTMF_DIAL_COMMAND DTMF_DETECT_STATUS RETURN_TO_DATA_COMMAND RETURN_TO_COMMAND Commands available for manual operation include: DTMF_DETECT_ON_COMMAND EOD DTMF_DETECT_STATUS The following is an example of automatic DTMF detect: (Connecting Call) . . . Wait for Response SILENCE_DETECT_STATUS Check Status VOICE_MODE . . . Wait for Response DTMF_DETECT_STATUS Retrieve Byte Code from Data_Area Send PC_ACK . . . (Continuing in DTMF/Voice Mode) The following is an example of manual DTMF detect: Send GET_DTMF_COMMAND Wait for Response BOARD_ACK_STATUS Wait for Response DTMF_DETECT_STATUS Retrieve Byte Data from Data_Area Send PC_ACK . . . (When Finished) Send EOD_FLAG Wait for Response BOARD_ACK_COMMAND Send PC_ACK ************************************************************************** Voice Mode Voice mode can be entered when you are connected or disconnected to the phone line. When connected, voice recording is provided from the telephone line to either Fax A or Fax B. In the disconnected mode, input is provided by a microphone on Fax A only. In automatic voice mode, DTMF and voice are enabled. During Phase A of the call, the Voice mode is entered after a user definable period of silence. After the period of silence, the Host is notified of the "silent period" (SILENCE_DETECTED status) and starts to execute options similar in functionality to the Class 2 voice commands. The options in Automatic mode are: Command Description ---------------------------------------------------------------------------------- CNG_DETECT_ON_COMMAND Enables voice mode and CNG detect CNG_DETECT_OFF_COMMAND (default) SET_ACTIVITY_TIMER Sets the time to wait for CNG tone GAIN_UP Increases the gain increment by 1 dB GAIN_DOWN Decrements gain increment by 1 dB SET_GAIN Sets the gain increment SET_SLEW_RATE Sets the "fall-off rate" for voice signal RETURN_TO_COMMAND Returns to command state from voice mode RECORD_START Starts recording voice RECORD_STOP Stops recording voice PLAY_START Starts voice play back PLAY_END Ends voice playback DIAL_DTMF_COMMAND Transmits DTMF tones Manual voice mode requires the host to issue the SETUP_VOICE_COMMAND from command state. Once the command is received by the FAX, the JT Fax 14400B Dual enters the VOICE/DTMF mode and all commands available for Automatic mode are applicable except the RETURN_TO_DATA_COMMAND. During the actual playing and recording of a message, the DTMF detection is not available. This is due to the half-duplex nature of the 144EFX chip and different modes required for DTMF DETECT and VOICE mode. However, after the message is sent DTMF detection may occur. Voice data format during record and playback is in a raw binary 8-bit resolution format. The following PDL example is for automatic voice playback: (Initiate Call) . . . Wait for Response SILENCE_DETECT_STATUS Send PC_ACK Write Voice Data in Data_Area Send Play Start Wait for Response LOAD_DATA_COMMAND . . . (Finish Data) SEND_EOV_FLAG Wait for Response BOARD_ACK_COMMAND Send PC_ACK . . . (Continue with Voice/DTMF loop) Voice playback is completed. The following example is for manual record off-line. Step 1: Attach the microphone to the Fax A microphone jack. Step 2: Start the voice recording process: Send REC_START_COMMAND Wait for Response BOARD_ACK_STATUS Wait for Response LOAD_DATA_COMMAND Retrieve voice data from Data_Area Send PC_ACK . . . Wait for Response EOVFLAG Send PC_ACK This completes the voice recording. To use Manual Voice Recording, use the previous procedure, but replace the REC_START_COMMAND with the MANUAL_REC_COMMAND. ========================================================================== Chapter 5 Command Reference This Chapter includes detailed descriptions of the JT Fax command set. The point of reference is from the HOST side for all commands. The command descriptions are in the following format: Characteristic Description COMMAND: Specific function or status mnemonic CODE: Hex code CATEGORY: Fax, Status, Configuration, Utility, Voice DIRECTION: Host to JT Fax or JT Fax to Host INPUT to JT: Location in API block. Direction: JT Fax OUTPUT from JT: Location in API block. Direction: Host DEFAULT: Default for status commands DESCRIPTION: Detailed description of command EXAMPLE: A flow language example RELATED FUNCTIONS: Any other functions that might be of use The commands are presented in alphabetical order. Note: A PC_ACK is required after a BOARD_ACK status unless otherwise specified by the specific command feature. ************************************************************************** BAD_RAM Characteristic Description COMMAND: BAD_RAM CODE: 0F1H CATEGORY: Fax - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: BAD_RAM is issued after the RAM test was performed. BAD_RAM is an indication of a faulty random access memory chip. It is not recommended that FAX operation proceed. Call Hayes Customer Service. EXAMPLE: BOARD_SYNC_COMMAND - Host BAD_RAM - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ***************************************************************************** BAD_ROM Characteristic Description COMMAND: BAD_ROM CODE: 0F2H CATEGORY: Fax - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: BAD_ROM is issued after the ROM test was performed. BAD_ROM is an indication of faulty read only memory chip. It is not recommended that FAX operation proceed. Call Hayes Customer Service. EXAMPLE: BOARD_SYNC_COMMAND - Host BAD_ROM - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ************************************************************************** Board_ACK_Status Characteristic Description COMMAND: Board_ACK_Status CODE: 02H CATEGORY: Status DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: This API is part of the handshake protocol with the Host. The JT Fax board returns a BOARD_ACK_STATUS acknowledging the receipt or completion of a command. Some commands have additional handshake sequences and are detailed under the specific command. EXAMPLE: REC_PCX_ON_COMMAND - Host BOARD_ACK_STATUS - JT Fax (continue if necessary) . . . RELATED FUNCTIONS: PC_ACK ************************************************************************** Board_Sync_Command Characteristic Description COMMAND: Board_Sync_Command CODE: 0FFH CATEGORY: FAX - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: GOOD_INIT IDLE DEFAULT: Not applicable DESCRIPTION: The BOARD_SYNC_COMMAND initiates command state for the Fax after a power up or HARDWARE_RESET_COMMAND. No commands are accepted by the Fax until this command is issued. After the command is issued, BOARD_STATUS is updated in the API block. A GOOD_INIT is issued when the Fax is ready for commands. If a GOOD_INIT is not received , then the Host may need to issue another HARDWARE_RESET_COMMAND. EXAMPLE: BOARD_SYNC_COMMAND - Host GOOD_INIT - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: GOOD_INIT, HARDWARE_RESET_COMMAND ************************************************************************** Busy_Command Characteristic Description COMMAND: Busy_Command CODE: 02FH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Detect Busy DESCRIPTION: The BUSY_COMMAND instructs the JT Fax to recognize a busy signal. EXAMPLE: IDLE - FAX BUSY_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_DIAL_COMMAND, DTMF_DIAL_COMMAND ************************************************************************** CED_Off_Command Characteristic Description COMMAND: CED_Off_Command CODE: 037H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CED_OFF_COMMAND terminates the output of an ITU-T T.4 specified 2100 Hz tone. EXAMPLE: CED_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CED_ON_COMMAND ***************************************************************************** CED_On_Command Characteristic Description COMMAND: CED_On_Command CODE: 036H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CED_ON_COMMAND outputs an ITU-T T.4 specified 2100 Hz tone. EXAMPLE: CED_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CED_OFF_COMMAND ************************************************************************** CNG_Detect_Off_Command Characteristic Description COMMAND: CNG_Detect_Off_Command CODE: 061H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Off DESCRIPTION: The CNG_DETECT_OFF_COMMAND must be issued from command state. The command disables the voice and DTMF modes when answering a call. After answering a call, the Fax will not determine if the caller is a voice call or Fax call by detecting a CNG tone. The answer back tone is transmitted. EXAMPLE: IDLE - FAX CNG_DETECT_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR ************************************************************************** CNG_Detect_On_Command Characteristic Description COMMAND: CNG_Detect_On_Command CODE: 060H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Off DESCRIPTION: The CNG_DETECT_ON_COMMAND must be issued from command state. The command enables the voice and DTMF modes when answering a call. After answering a call, the Fax will not determine if the caller is a voice call or Fax call by detecting a CNG tone. The answer back tone is transmitted. EXAMPLE: IDLE - FAX CNG_DETECT_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR ************************************************************************** CNG_Off_Command Characteristic Description COMMAND: CNG_Off_Command CODE: 035H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CNG_OFF_COMMAND terminates the output of an ITU-T T.4 specified 1100 Hz tone. EXAMPLE: CNG_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CNG_OFF_COMMAND ************************************************************************** CNG_On_Command Characteristic Description COMMAND: CNG_On_Command CODE: 034H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CNG_ON_COMMAND outputs an ITU-T T.4 specified 1100 Hz tone. EXAMPLE: CNG_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CNG_OFF_COMMAND ************************************************************************** DTMF_Detect_Off_Command Characteristic Description COMMAND: DTMF_Detect_Off_Command CODE: 074H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_OFF_COMMAND disables the Fax capability to detect DTMF tones while in the Voice/DTMF mode. EXAMPLE: IDLE - FAX DTMF_DETECT_OFF_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** DTMF_Detect_On_Command Characteristic Description COMMAND: DTMF_Detect_On_Command CODE: 073H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_ON_COMMAND enables the Fax capability to detect DTMF tones while in the Voice/DTMF mode. EXAMPLE: IDLE - FAX DTMF_DETECT_ON_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** DTMF_Detect_Status Characteristic Description COMMAND: DTMF_Detect_Status CODE: 070H CATEGORY: Voice , Status DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: DTMF digit in DATA_AREA DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_STATUS informs the Host that a DTMF tone was detected while in VOICE/DTMF mode. The DTMF_DETECT_STATUS command is only issued after a DTMF_DETECT_ON_COMMAND. EXAMPLE: DTMF_DETECT_ON_COMMAND - Host . . . SILENCE_DETECTED_STATUS - FAX PC_ACK - Host ...load DTMF byte in DATA_AREA - FAX DTMF_DETECT_STATUS - FAX ...retrieve DTMF byte - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", DTMF_DETECT_ON_COMMAND, DTMF_DETECT_OFF_COMMAND ************************************************************************** DTMF_Dial_Command Characteristic Description COMMAND: DTMF_Dial_Command CODE: 02CH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: DTMF number at OFFSET 00H in buffer_area Max. number length 60 characters OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_DIAL_COMMAND dials the digits stored at BUFFER_AREA. The dial command does not connect the phone line. The line must be connected with an OFF_HOOK_COMMAND. The dial string has several digits and modifiers. The DTMF digits supported are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, #, A, B, C, D. The dial modifiers are: JT Fax 9600B COMPATIBILITY First byte: 'P' - Pulse Dial 'T' - Tone Dial Second byte: 'W' - Wait for Dial Tone ' ' - Do not Wait If the first two bytes are 'MA' (Manual Dial) a number will not be dialed. JT Fax 14400B -------------------------- P - pulse dial T - tone dial W - wait for dialtone , - 2 second pause ! - flash hook I - no busy detect Note: This command may be used in Voice offline mode. EXAMPLE: IDLE - FAX (load string value in buffer_area) - Host DIAL_DTMF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_ON_TIME_COMMAND, DTMF_OFF_TIME_COMMAND ************************************************************************** DTMF_Off_Command Characteristic Description COMMAND: DTMF_Off_Command CODE: 029H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_OFF_COMMAND commands the JT Fax to terminate a DTMF tone. The command does not disconnect the line. EXAMPLE: IDLE - FAX DTMF_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: DTMF_ON_COMMAND, FAX_MODE_COMMAND, ON_HOOK_COMMAND ************************************************************************** DTMF_Off_Time_Command Characteristic Description COMMAND: DTMF_Off_Time_Command CODE: 02BH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: DTMF time at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 70 ms DESCRIPTION: DTMF_OFF_TIME_COMMAND configures the interdigit off time for automatic dialing of DTMF digits. The value specified is in milliseconds with a length of WORD. Max. value is 65 seconds. Standard minimum value is 65 ms. EXAMPLE: IDLE - FAX (load word value in buffer_area) - Host DTMF_OFF_TIME_COMMAND - - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_DIAL_COMMAND, DTMF_ON_TIME_COMMAND ************************************************************************** DTMF_On_Command Characteristic Description COMMAND: DTMF_On_Command CODE: 028H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: DTMF tone digit at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_ON_COMMAND commands the JT Fax to send a DTMF digit specified by the value in BUFFER_AREA. The duration of the tone is controlled by the Host. The command does not connect the phone line. The tone is terminated by the DTMF_OFF_COMAMND. Note: JT Fax must be in Fax mode for Utility commands. EXAMPLE: IDLE - FAX (load digit in buffer area) - Host DTMF_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: DTMF_OFF_COMMAND, FAX_MODE_COMMAND, OFF_HOOK_COMMAND ************************************************************************** DTMF_On_Time_Command Characteristic Description COMMAND: DTMF_On_Time_Command CODE: 029H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: DTMF time at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 70 ms DESCRIPTION: DTMF_ON_TIME_COMMAND sets the on-time for automatic dialing of DTMF digits. The value specified is in milliseconds with a length of WORD. Max. value is 65 seconds. The standard minimum value is 65 ms. EXAMPLE: IDLE - FAX (load word value in buffer_area)- Host DTMF_ON_TIME_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_DIAL_COMMAND, DTMF_OFF_TIME_COMMAND ************************************************************************** Enhanced_Mode_Off_Command Characteristic Description COMMAND: Enhanced_Mode_Off_Command CODE: 053H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The ENHANCED_MODE_OFF_COMMAND allows the JT Fax 14400B to operate in 9600B compatible mode. All status messages, error codes and speeds provided by the 14400B are disabled. EXAMPLE: IDLE - FAX ENHANCED_MODE_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, FAX_144_MODE_OFF_COMMAND, ENHANCED_MODE_ON_COMMAND ************************************************************************** Enhanced_Mode_On_Command Characteristic Description COMMAND: Enhanced_Mode_On_Command CODE: 052H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The ENHANCED_MODE_ON_COMMAND allows the JT Fax 14400B to operate in enhanced mode. All status messages, error codes and speeds provided by the 14400B are enabled. EXAMPLE: IDLE - FAX ENHANCED_MODE_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, FAX_144_MODE_ON_COMMAND, ENHANCED_MODE_OFF_COMMAND ************************************************************************** EOD_Flag Characteristic Description COMMAND: EOD_Flag CODE: 076H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The EOD_FLAG terminates the DTMF search. Any other command can be issued after this command sequence is complete. EXAMPLE: IDLE - FAX GET_DTMF_COMMAND - Host BOARD_ACK_COMMAND - FAX ...byte in data_area - FAX DTMF_DETECT_STATUS - FAX ...retrieve byte from data_area - Host PC_ACK - Host ...continue looking for DTMF - FAX . . . EOD_FLAG - HOST BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF" ************************************************************************** EOPFLAG Characteristic Description COMMAND: EOPFLAG CODE: 08H CATEGORY: Fax DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: EOPFLAG signifies that an end of page is necessary. The Host may elect to use the LINE_COUNT field in the API block for setting an end of page. The Fax page is transmitted until the line count is reached ( MIN_PAGE = non zero) and an EOP is issued to the called device. If the FAX page was short and a standard page length is used, then the LINECOUNT field sets the page length (MIN_PAGE = 0). All pages are the length of LINECOUNT. When using the EOPFLAG a PC_ACK command is not necessary. EXAMPLE: LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . LOAD_DATA_COMMAND - FAX ...load data - Host EOPFLAG - Host LOAD_DATA_COMMAND - FAX . . . RELATED FUNCTIONS: LOAD_DATA_COMMAND, EOTFLAG ************************************************************************** EOTFLAG Characteristic Description COMMAND: EOTFLAG CODE: 0FH CATEGORY: Fax DIRECTION: JT Fax to Host Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: EOTFLAG signifies an end of data transfer. The Fax command can be issued from either the Host or JT Fax. The Host issues the command in the XMIT_MODE to end data transmission, or in downloadable fonts to end the font download. The JT Fax issues the command to end a Fax reception. EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host EOTFLAG - Host . . . IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, RECVINIT, LOADFONT_COMMAND, "Error Codes, EOV_FLAG ************************************************************************** EOV_FLAG Characteristic Description COMMAND: EOV_FLAG CODE: 066H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA LOAD_DATA_COMMAND DEFAULT: Not applicable DESCRIPTION: The EOV_FLAG notifies the Host/Fax that the last buffer of data is in the DATA_AREA. This command is issued after a PLAY_START_COMMAND sequence. The command is used for voice data only. EXAMPLE: REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX ...load data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX ...load data from DATA_AREA - Host REC_STOP_COMMAND - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, RECVINIT_COMMAND ************************************************************************** Error Characteristic Description COMMAND: Error CODE: 06H CATEGORY: Status DIRECTION: JT Fax to Host INPUT to JT: IDLE OUTPUT from JT: RET_CODE contains error code DEFAULT: Not applicable DESCRIPTION: ERROR signifies that an error has occurred. The type of error can be retrieved from the RET_CODE field. ERROR does require the host to reset the COMMAND_DATA field to IDLE when the error code is read. EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . ERROR - JT Fax BUSY(ret_code field) - JT Fax (check ret_code) - Host IDLE - Host RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, RECVINIT, Error Codes ************************************************************************** Extend_Status_Off_Command Characteristic Description COMMAND: Extend_Status_Off_Command CODE: 04FH CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The EXTEND_STATUS_OFF_COMMAND disables the extended status available to the Host with the JT Fax 14400B. The status codes do not appear in the STATUS field of the API block and the status command is not issued. EXAMPLE: IDLE - FAX EXTEND_STATUS_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, STATUS_COMMAND ************************************************************************** Extend_Status_On_Command Characteristic Description COMMAND: Extend_Status_On_Command CODE: 04EH CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The EXTEND_STATUS_ON command enables the extended status available to the Host with the JT Fax 14400B. The status codes appear in the STATUS field of the API block after the status command is issued. EXAMPLE: IDLE - FAX EXTEND_STATUS_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, STATUS_COMMAND ************************************************************************** FAX_144_Mode_Off_Command Characteristic Description COMMAND: FAX_144_Mode_Off_Command CODE: 051H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The FAX_144_MODE_OFF_COMMAND allows the JT Fax 14400B to be compatible with the JT Fax 9600B. This command is included due to the change in the speed indexes for 14,400 bps. EXAMPLE: IDLE - FAX FAX_144_MODE_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, FAX_144_MODE_ON_COMMAND, ENHANCED_MODE_OFF_COMMAND ************************************************************************** FAX_144_Mode_On_Command Characteristic Description COMMAND: FAX_144_Mode_On_Command CODE: 050H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The FAX_144_MODE_ON_COMMAND allows the JT Fax 14400B to enable reception of Faxes at the 14,400 bps rate. This command is included due to the change in the speed indexes for 14,400 bps. An index value of 5 in the BAUD_RATE field indicates 14,400 bps and a 4 indicates 12,000 bps. This command only affects the speed. EXAMPLE: IDLE - FAX FAX_144_MODE_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, FAX_144_MODE_OFF_COMMAND, ENHANCED_MODE_ON_COMMAND ************************************************************************** FAX_Mode_Command Characteristic Description COMMAND: FAX_Mode_Command CODE: 026H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: MODEM MODE in Command State FAX MODE is automatic with Fax commands DESCRIPTION: The FAX_MODE_COMMAND is required for all Utility commands. The command also allows JT Fax to control the Telco line interface instead of requiring OEM daughter cards. PC Bus access is available in both Fax and Modem mode. If a daughter card is not attached, Modem mode will not be necessary for JT Fax. EXAMPLE: IDLE - FAX FAX_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX OFF_HOOK_COMMAND - Host RELATED FUNCTIONS: MODEM_MODE_COMMAND, "Utility Commands" ************************************************************************** Gain_Down_Command Characteristic Description COMMAND: Gain_Down_Command CODE: 068H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The GAIN_DOWN_COMMAND decrements the maximum gain of the voice record by 1 dB. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The value is retained between recordings. EXAMPLE: IDLE - FAX GAIN_DOWN_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Gain_Up_Command Characteristic Description COMMAND: Gain_Up_Command CODE: 067H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The GAIN_UP_COMMAND increments the maximum gain of the voice record by 1 dB. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The value is retained between recordings. EXAMPLE: IDLE - FAX GAIN_UP_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Get_DTMF_Command Characteristic Description COMMAND: Get_DTMF_Command CODE: 075H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Byte value in DATA_AREA DEFAULT: Not applicable DESCRIPTION: The GET_DTMF_COMMAND can also be used in command state. The command initiates DTMF mode and continually searches for DTMF tones. The EOD_FLAG terminates the DTMF search. Any other command can be issued after this command. The "on/off hook" is controlled by the Host. EXAMPLE: IDLE - FAX GET_DTMF_COMMAND - Host BOARD_ACK_STATUS - FAX ...byte in data_area - FAX DTMF_DETECT_STATUS - FAX ...retrieve byte from data_area - Host PC_ACK - Host ...continue looking for DTMF - FAX . . . EOD_FLAG - HOST BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", EOD_FLAG ************************************************************************** Good_Init Characteristic Description COMMAND: Good_Init CODE: 0F0H CATEGORY: FAX - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The GOOD_INIT command is issued after a BOARD_SYNC_COMMAND is received following power up. It indicates that the FAX is ready for commands and the ROM/RAM test was good. EXAMPLE: BOARD_SYNC_COMMAND - Host GOOD_INIT - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ************************************************************************** Hardware_Reset_Command Characteristic Description COMMAND: Hardware_Reset_Command CODE: 030H CATEGORY: Control DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The HARDWARE_RESET_COMMAND instructs JT Fax to initiate a "power on reset" function. The command is placed in the API block location, RESET_BOARD, at offset 51H. When RESET_BOARD is set to a HARDWARE_RESET_COMMAND, then the following happens: RAM and ROM test is executed data pump is reset, memory cleared all options set to default conditions. After six seconds, JT Fax starts waiting for a SYNC_COMMAND from the Host. A SYNC_COMMAND must be issued by the Host before any commands can be accepted. Note: This command should be used a last resort because it resets the JT Fax hardware and all user configurations to default. EXAMPLE: IDLE - FAX HARDWARE_RESET_COMMAND - Host (wait for 6 seconds) SYNC_COMMAND - Host IDLE_STATUS - FAX RELATED FUNCTIONS: SYNC_COMMAND, SOFTWARE_RESET_COMMAND ************************************************************************** Idle_Status Characteristic Description COMMAND: Idle_Status CODE: 01H CATEGORY: Status DIRECTION: JT Fax to Host Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: IDLE_STATUS is a compatibility status code/command. The command is issued to reset the Command field. The command is used by the Host in response to a BOARD_ACK_STATUS, or by JT Fax in response to a PC_ACK command or when in command state waiting for command. This command should only be used while in command state. EXAMPLE: IDLE - FAX (load time in buffer area - Host SET_CARRIER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - Host RELATED FUNCTIONS: BOARD_ACK_STATUS, PC_ACK ************************************************************************** Load_Data_Command Characteristic Description COMMAND: Load_Data_Command CODE: 03H CATEGORY: FAX DIRECTION: JT Fax to Host INPUT to JT: Data in DATA_AREA PC_ACK EOTFLAG EOPFLAG OUTPUT from JT: none LOAD_DATA_COMMAND EOTFLAG (receive mode only) DEFAULT: Not applicable DESCRIPTION: The LOAD_DATA_COMMAND is used when large amounts of data are needed. The direction of the load depends on the mode selected. If in TRANSMIT_MODE, the load data command is issued by JT Fax to indicate that data is ready to be received from the Host in the DATA_AREA. Once all the data has been placed in the DATA_AREA, the Host issues a PC_ACK. In the RECEIVE_MODE, the command is issued by JT Fax to alert the Host that data is available in the data area to be retrieved. After the Host retrieves the data, the host issues a PC_ACK. EXAMPLE: RECEIVE_MODE only RECVINIT - JT Fax (Host load ID in Buffer Area) PC_ACK - Host LOAD_DATA_COMMAND - JT Fax (Host retrieves data) PC_ACK - Host . . . EOT - JT Fax RELATED FUNCTIONS: EOT_FLAG, RECVINIT, PC_ACK ************************************************************************** Load_Font_Command Characteristic Description COMMAND: Load_Font_Command CODE: 04H CATEGORY: FAX DIRECTION: Host to JT Fax INPUT to JT: Font Data in DATA_AREA EOTFLAG OUTPUT from JT: BOARD_ACK FONT_TOO_LARGE DEFAULT: Not applicable DESCRIPTION: The LOAD_FONT_COMMAND is used to load the predefined JT Fax fonts or a user designed font (see Chapter 7). The font would be used only in transmit mode and file type ASCII_TYPE. Since the font data is larger than the DATA area several LOAD_DATA_COMMANDS would be issued by JT Fax. Issuing a HARD_RESET_COMMAND destroys a soft font, requiring a reload. Issuing a SOFT_RESET_COMMAND does not destroy a soft font. EXAMPLE: LOAD_FONT_COMMAND - Host LOAD_DATA_COMMAND - JT Fax ...load data in data_area - Host PC_ACK - Host LOAD_DATA_COMMAND - JT Fax . . . EOT - Host RELATED FUNCTIONS: PC_ACK, EOT, LOAD_DATA_COMMAND, "JT Fax Fonts" ************************************************************************** Manual_REC_Command Characteristic Description COMMAND: MANUAL_REC_COMMAND CODE: 10H CATEGORY: Fax DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: Manual receive enables the Host to force JT Fax to answer a call. The EXTEND_STATUS mode must be enabled before the STATUS command is received. A RING status appears in the STATUS_CODE field. After the status is retrieved, the Host returns the COMMAND field to IDLE. EXAMPLE: IDLE - FAX STATUS_COMMAND - FAX ...retrieve status code RING - Host MANUAL_REC_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . RELATED FUNCTIONS: "Status Codes", STATUS_COMMAND ************************************************************************** Modem_Mode_Command Characteristic Description COMMAND: Modem_Mode_Command CODE: 027H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: MODEM MODE in Command State FAX MODE is automatic with FAX commands DESCRIPTION: The MODEM_MODE_COMMAND is required to remove the previous FAX_MODE_COMMAND. The command also allows the OEM daughter Card to control the Telco line interface instead of JT Fax. PC Bus access is available in both Fax mode and Modem mode. If a Daughter card is not attached, Modem mode will not be necessary for JT Fax. EXAMPLE: IDLE - FAX FAX_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX OFF_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX MODEM_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND ************************************************************************** No_Busy_Command Characteristic Description COMMAND: No_Busy_Command CODE: 02EH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Detect Busy DESCRIPTION: The NO_BUSY_COMMAND instructs the JT Fax to ignore the busy signal. EXAMPLE: IDLE - FAX NO_BUSY_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_DIAL_COMMAND, DTMF_DIAL_COMMAND ************************************************************************** OEM_Code_Command Characteristic Description COMMAND: OEM_Code_Command CODE: 079H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The OEM_CODE_COMMAND executes Host code that was downloaded to the Fax. The Fax utilizes a 16 MHz processor. The OEM_CODE_COMMAND executes custom assembly language code for the Host. The OEM code and data can be no larger than 28 KB. The OEM code has access to the command byte structure at 0:8000H. The code segment must be "0" and the code or data must start at 0:8800H. Additional 3K of RAM is available at 0:67D0H. (See Appendix F). EXAMPLE: IDLE - FAX OEM_CODE_COMMAND - Host ...OEM code executes - FAX ...OEM code terminates - FAX BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "OEM CODE ", OEM_LOAD_COMMAND ************************************************************************** OEM_Load_Command Characteristic Description COMMAND: OEM_Load_Command CODE: 07AH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: OEM code in DATA_AREA OUTPUT from JT: LOAD_DATA_COMMAND BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The OEM_LOAD_COMMAND loads the OEM code into the Soft Font RAM. The OEM code and data can be no larger than 28 KB. The OEM_LOAD_COMMAND sequence is similar to the LOADFONT_COMMAND sequence. If the OEM code is larger than the space available, a FONT_TOO_LARGE error is returned. The load aborts when the error is reported. The OEM code remains in RAM until power up or a HARDWARE_RESET_COMMAND or LOAD_FONT_COMMAND is issued. Note Soft fonts are not available when using this command. EXAMPLE: IDLE - FAX OEM_LOAD_COMMAND - Host LOAD_DATA_COMMAND - JT Fax ...Load OEM code into Data_area - Host PC_ACK - Host LOAD_DATA_COMMAND - JT Fax . . . EOT - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "OEM CODE ", OEM_CODE_COMMAND, LOAD_FONT_COMMAND ************************************************************************** Off_Hook_Command Characteristic Description COMMAND: Off_Hook_Command CODE: 025H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The OFF_HOOK_COMMAND forces the JT Fax to go "Off-Hook" (i.e., pickup the phone). The command is used when the Host wants to initiate a dialing sequence (DTMF or Pulse). The OFF_HOOK_COMMAND returns to Command state after completion. Note: JT Fax must be in FAX_MODE to use Utility commands. EXAMPLE: IDLE - FAX OFF_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND, ON_HOOK_COMMAND ************************************************************************** On_Hook_Command Characteristic Description COMMAND: On_Hook_Command CODE: 024H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The ON_HOOK_COMMAND forces the JT Fax to go "on- hook". The command is used after "OFF_HOOK_COMMAND" has been issued when the Host requires a return to "on-hook" condition (i.e., hang-up). The ON_HOOK_COMMAND returns to Command state after completion. Note: JT Fax must be in FAX_MODE to use Utility commands. EXAMPLE: IDLE - FAX ON_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND, OFF_HOOK_COMMAND ************************************************************************** Online_Voice_Record_Off Characteristic Description COMMAND: Online_Voice_Record_Off CODE: 78H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Off DESCRIPTION: This API command turns the online voice record option off. This command can be issued after the voice message has been received to prevent premature termination of tone or voice greeting messages. EXAMPLE: IDLE - Host . . . ONLINE_VOICE_RECORD_ON - Host BOARD_ACK - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host . . . EOVFLAG - FAX ...Load data from Data Area - Host PC_ACK - Host IDLE - FAX ONLINE_VOICE_RECORD_OFF - Host BOARD_ACK - FAX RELATED FUNCTIONS: ONLINE_VOICE_RECORD_ON, EOVFLAG, RECORD_START_COMMAND ************************************************************************** Online_Voice_Record_On Characteristic Description COMMAND: Online_Voice_Record_On CODE: 77H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Off DESCRIPTION: This API provides the option to record voice messages while online. The message is terminated after the caller disconnects and dial tone is detected. Since tones in the range of 350-620 Hz cause termination, it is necessary to disable this option during all other recordings. EXAMPLE: IDLE - Host . . . SILENCE_DETECTED_STATUS - FAX . . . ONLINE_VOICE_RECORD_ON - Host BOARD_ACK - FAX PC_ACK - Host REC_START_COMMAND - Host . . . EOVFLAG - FAX ...Load data from Data Area - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: ONLINE_VOICE_RECORD_OFF, EOVFLAG, RECORD_START_COMMAND ************************************************************************** PC_ACK Characteristic Description COMMAND: PC_ACK CODE: 05H CATEGORY: STATUS handshake DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None, Idle DEFAULT: Not applicable DESCRIPTION: The PC_ACK command is used as acknowledgment between the PC software and the JT Fax 14400B. The response is appropriate when receiving a command from the JT Fax 14400 B Dual board. A PC_ACK does not require a response from the JT Fax 14400B Dual board. EXAMPLE: . . . GET_DTMF_COMMAND - Host BOARD_ACK_STATUS - JT Fax DTMF_DETECT_STATUS - JT Fax (retrieve DTMF code) PC_ACK - Host . . . RELATED FUNCTIONS: LOAD_DATA_COMMAND, RECVINIT, LOAD_FONT_COMMAND, BOARD_ACK_STATUS ************************************************************************** Play_End_Command Characteristic Description COMMAND: Play_End_Command CODE: 063H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The PLAY_END_COMMAND stops the playback of a voice file in voice mode. The current buffer is deleted and the voice transmission is halted. EXAMPLE: PLAY_START_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX PLAY_END_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", PLAY_START_COMMAND, EOV_FLAG ************************************************************************** Play_Start_Command Characteristic Description COMMAND: Play_Start_Command CODE: 062H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: Binary Voice data in DATA_AREA OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The PLAY_START_COMMAND initiates the playing of a recorded voice file. The command sequence is similar to a XMIT_COMMAND. An EOV_FLAG is issued when the last voice data is entered in DATA_AREA. The timing for loading data is the same as XMIT_COMMAND for JT Fax data formats. EXAMPLE: PLAY_START_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host EOV_FLAG - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR, PLAY_STOP_COMMAND, EOV_FLAG ************************************************************************** Pulse_Break_Command Characteristic Description COMMAND: Pulse_Break_Command CODE: 03AH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area in milliseconds OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 60 milliseconds DESCRIPTION: The PULSE_BREAK_COMMAND requires the Host to set the value of the "BREAK" portion of the make/break ratio for pulse dialing. The value is written into buffer_area before the command is issued. EXAMPLE: IDLE - FAX PULSE_BREAK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: PULSE_MAKE_COMMAND, PULSE_DIAL_COMMAND ************************************************************************** Pulse_Dial_Command Characteristic Description COMMAND: Pulse_Dial_Command CODE: 02DH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: Pulse number at OFFSET 00H in buffer_area Max. number length 60 characters. OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: PULSE_DIAL_COMMAND dials the phone number at BUFFER_AREA. The command does not connect the phone line. The line must be connected with an OFF_HOOK_COMMAND. The dial string has several digits and modifiers. The DTMF digits supported are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. The dial modifiers are: JT Fax 9600B COMPATIBILITY ------------------------------- First byte: 'P' - Pulse Dial 'T' - Tone Dial Second byte: 'W' - Wait for Dial Tone ' ' - Do not Wait If the first two bytes are 'MA' (Manual Dial) a number will not be dialed. JT Fax 14400B --------------------------- P - pulse dial T - tone dial W - wait for dialtone , - 2 second pause ! - flash hook I - no busy detect Note: JT Fax must be in Fax mode for Utility commands. EXAMPLE: IDLE - FAX (load string value in buffer_area) - Host PULSE_DIAL_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_INTER_COMMAND ************************************************************************** Pulse_Inter_Command Characteristic Description COMMAND: Pulse_Inter_Command CODE: 032H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Time in milliseconds, WORD value in buffer_area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 600 milliseconds DESCRIPTION: The PULSE_INTER_COMMAND sets the interdigit time of the pulse dial. The units of the command are in milliseconds. EXAMPLE: IDLE - FAX (value in buffer_area) - Host PULSE_INTER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - FAX RELATED FUNCTIONS: PULSE_BREAK_COMMAND, PULSE_MAKE_COMMAND ************************************************************************** Pulse_Make_Command Characteristic Description COMMAND: Pulse_Make_Command CODE: 03BH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area in milliseconds OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 40 milliseconds DESCRIPTION: The PULSE_MAKE_COMMAND requires the Host to set the value of the "make" portion of the make/break ratio for pulse dialing. The value is written into buffer_area before the command is issued. EXAMPLE: IDLE - FAX PULSE_MAKE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: PULSE_MAKE_COMMAND, PULSE_DIAL_COMMAND ***************************************************************************** RecvInit Characteristic Description COMMAND: RecvInit CODE: 10H CATEGORY: Fax DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: RECVINIT command is issued to the Host when JT Fax detects an incoming call. The call may be a voice call or a fax call. It is up to the Host to make this determination (see Chapter 4) and decide to initiate voice procedures, disconnect, or continue the call. The default is to continue the call. If the caller is voice and CNG_DETECT is not enabled, the CED is transmitted and the call disconnects when Carrier timer expires. CNG detect mode has several options (see Chapter 4). EXAMPLE: IDLE - FAX RECVINIT_COMMAND - FAX ...(load ID into Buffer Area) - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...retrieve data - Host PC_ACK - Host . . . EOTFLAG - JT Fax ...retrieve data - Host PC_ACK - Host IDLE - JT Fax RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, SET_VOICE_COMMAND, DTMF_DETECT_COMMAND, DTMF_DETECT, SILENCE_DETECTED, SET_ACTIVITY_TIMER, "Error Codes" ************************************************************************** Rec_PCX_Off_Command Characteristic Description COMMAND: Rec_PCX_Off_Command CODE: 023H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: PCX receive conversion disabled DESCRIPTION: REC_PCX_OFF_COMMAND configures JT Fax to convert the caller's T.4 encoded file to a JT_FAX_FORMAT. EXAMPLE: IDLE - FAX REC_PCX_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: RECVINIT, MANUAL_REC_COMMAND, "Data Formats" ************************************************************************** Rec_PCX_On_Command Characteristic Description COMMAND: Rec_PCX_On_Command CODE: 022H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: PCX receive conversion disabled DESCRIPTION: REC_PCX_ON_COMMAND configures JT Fax to convert the caller's T.4 encoded file to a PCX version 3 file. The PCX header is given to the Host in the first data load. EXAMPLE: IDLE - FAX REC_PCX_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: RECVINIT, MANUAL_REC_COMMAND ************************************************************************** Rec_Start_Command Characteristic Description COMMAND: Rec_Start_Command CODE: 064H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA Load_Data_Command DEFAULT: Not applicable DESCRIPTION: The REC_START_COMMAND instructs the fax to initiate a recording session. The command sequences are similar to the receive Fax data. Once the command is issued, the data pump is configured and voice data from the A/D converter is read immediately. The data sampling continues until a REC_STOP_COMMAND is issued. EXAMPLE: REC_START_STATUS - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...retrieve data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host . . . RELATED FUNCTIONS: "Voice and DTMF", REC_STOP_COMMAND, RECVINIT_COMMAND Note: This command can be used to record offline on Fax A with a microphone. Recording may be done while connected on-line with either Fax A or Fax B using the phone line as input. ************************************************************************** Rec_Stop_Command Characteristic Description COMMAND: Rec_Stop_Command CODE: 065H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA Load_Data_Command EOV_FLAG DEFAULT: Off DESCRIPTION: The REC_STOP_COMMAND instructs the JT Fax to terminate a recording session. The recording stops and the data in the record buffers is transmitted to the Host. To end the transmission of data to the Host, the JT Fax issues an EOV_FLAG. EXAMPLE: REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host REC_STOP_COMMAND - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, RECVINIT_COMMAND Note: After recording messages, disconnect the microphone from Fax A. ************************************************************************** Reset_Data_Pump_Command Characteristic Description COMMAND: Reset_Data_Pump_Command CODE: 033H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The RESET_DATA_PUMP command resets the Fax data pump. When resetting the data pump, the chip returns to its initial power on state. This command should only be used before the DIAL_DTMF_COMMANDS state. The command is used by JT Fax to set the data pump to a known state after each call or receive. EXAMPLE: RESET_DATA_PUMP_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: HARDWARE_RESET_COMMAND ************************************************************************** Return_to_Command Characteristic Description COMMAND: Return_to_Command CODE: 072H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The RETURN_TO_COMMAND terminates voice mode and returns to command state. The JT Fax returns to command state, and the data pump is reset. The phone line may be disconnected by the ON_HOOK_COMMAND if desired. EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host RETURN_TO_COMMAND - HOST BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, RETURN_TO_DATA_COMMAND ************************************************************************** Return_to_Data_Command Characteristic Description COMMAND: Return_to_Data_Command CODE: 071H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The RETURN_TO_DATA_COMMAND terminates voice mode and returns to complete a fax call. The JT Fax is returned to fax data at the beginning of Phase A and transmits the CED to the caller. (See Chapter 6). EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host RETURN_TO_DATA_COMMAND - Host BOARD_ACK_STATUS - FAX ...send CED - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** Setup_Voice_Command Characteristic Description COMMAND: Setup_Voice_Command CODE: 05FH CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SETUP_VOICE_COMMAND must be issued from command state. The command is used to enter voice mode for RECORDING or PLAYBACK and testing. Once in the VOICE mode, all voice commands can be issued and DTMF detection is enabled. See Chapter 6. EXAMPLE: IDLE - FAX SETUP_VOICE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: Voice and DTMF" ************************************************************************** Set_Act_Timer_Command Characteristic Description COMMAND: Set_Act_Timer_Command CODE: 06FH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 3.5 seconds DESCRIPTION: The SET_ACT_TIMER_COMMAND sets the activity timer when CNG_DETECT_ON_COMMAND has been issued. The timer value is specified in milliseconds and has a range from 0-65000. The activity timer starts after the Fax picks up the phone line. If a CNG tone is detected (Fax caller), the timer is reset, a CED is transmitted (Fax callee) and the Fax call continues. However, if silence is detected (no CNG tone) for the duration of the activity timer, the SILENCE_DETECT_STATUS is issued. The JT Fax automatically enters VOICE/DTMF mode. Note: Cycle time for a CNG_TONE is 3 seconds off, 0.5 seconds on. EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host IDLE - Host . . . PLAY_START_COMMAND - Host . . . RELATED FUNCTIONS: "Voice and DTMF", PLAY_START_COMMAND, DTMF_DIAL_COMMAND, DTMF_DETECT_ON_COMMAND ************************************************************************** Set_Carrier_Command Characteristic Description COMMAND: Set_Carrier_Command CODE: 020H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Wait for carrier time buffer area (word value) - in milliseconds max. (65 seconds) OUTPUT from JT: BOARD_ACK DEFAULT: 60 sec DESCRIPTION: The SET_CARRIER_COMMAND sets the time to wait for the caller and called station to complete Phase A. The NO_CARRIER timer starts after the dial and terminates at the beginning of Phase B. If the timer expires, the call is disconnected and an ERROR status returned to the host. Carrier may also be set placing a work value into Buffer Area [0] before a Sync Command is issued. Units are in milliseconds. EXAMPLE: (load time in buffer area) - Host SET_CARRIER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: ERROR, "Error Codes", "Status Codes" ************************************************************************** Set_Gain_Command Characteristic Description COMMAND: Set_Gain_Command CODE: 069H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The SET_GAIN_COMMAND sets the maximum gain of the voice recording. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The maximum gain is calculated by the following formula: MAX_GAIN = 655.36 [ 50 - Gain Limit (dB) ]. The value should be a 16-bit, positive, twos compliment value. The value is retained between recordings. EXAMPLE: IDLE - FAX ...load Gain Limit WORD in buffer_area - Host SET_GAIN_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_Sample_Rate_Command Characteristic Description COMMAND: Set_Sample_Rate_Command CODE: 06AH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: BYTE value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 9600 Hz DESCRIPTION: The SET_SAMPLE_RATE_COMMAND sets the sampling rate of the voice recording. The value placed into the Buffer_Area is an index to the provided sample rates. The following is an EXAMPLE of the available sample rates: --------------- 1 9600 Hz 2 8000 Hz 3 7200 Hz The value is retained between voice mode sessions. EXAMPLE: IDLE - FAX ...load BYTE in buffer_area - Host SET_SAMPLE_RATE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_Slew_Rate_Command Characteristic Description COMMAND: Set_Slew_Rate_Command CODE: 06BH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: WORD value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 0 DESCRIPTION: The SET_SLEW_RATE_COMMAND sets the slew rate of the voice recording. The value is placed into the Buffer_Area. The Slew rate value determines the fall off time of the voice wave form. The value can be adjusted by the following formula, SLEW_RATE = [19968/(Sample Rate x fall time in seconds)]. The value is a 16-bit, positive, twos compliment value. The value is retained between voice sessions. EXAMPLE: IDLE - FAX ...load BYTE in buffer_area - Host SET_SLEW_RATE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_User_CSI_Command Characteristic Description COMMAND: Set_User_CSI_Command CODE: 055H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Buffer_Area 20 byte CSI OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SET_USER_CSI_COMMAND provides flexibility in Fax identification. TSI/CSI Fax information for transmit and receive can be modified to contain a specialized message. The format previously available for 9600B allowed the CSI to be placed in the buffer area on transmit and receive. The format of header data in the BUFFER_AREA consisted of: 0-20 CSI 21-54 -other user information 55 - Page number followed by space (transmit only) 56 - 61 padded spaces. The CSI was always contained in the header of the transmitted page. In receive mode, the CSI was transmitted to the caller. Since the CSI appeared on the Fax page as a header, there was no way to send different CSI data to the caller/callee. This command allows two different messages to appear to the caller/callee. One message in the CSI and the other in the printed Fax header. The SET_USER_CSI mode can only be cleared with a HARD_RESET. EXAMPLE: IDLE - FAX SET_USER_CSI_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, "Buffer Area" ************************************************************************** Set_User_TSI_Command Characteristic Description COMMAND: Set_User_TSI_Command CODE: 054H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Buffer_Area 20 byte TSI OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SET_USER_TSI_COMMAND provides flexibility in fax identification. TSI/CSI fax information for transmit and receive can be modified to contain a specialized message. The format previously available for 9600B allowed the TSI to be placed in the buffer area on transmit and receive. The format of header data in the BUFFER_AREA consisted of: 0-20 TSI 21-54 -other user information 55 - Page number followed by space (transmit only) 56 - 61 padded spaces. The TSI was always contained in the header of the transmitted page. In receive mode, the TSI was transmitted to the caller. Since the TSI appeared on the Fax page as a header, there was no way to send different TSI data to the caller/callee. This command allows two different messages to appear to the caller/callee. One message in the TSI and the other in the printed Fax header. The SET_USER_TSI mode can only be cleared with a HARD_RESET. EXAMPLE: IDLE - FAX SET_USER_TSI_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, "Buffer Area" ************************************************************************** Silence_Detected_Status Characteristic Description COMMAND: Silence_Detected_Status CODE: 06CH CATEGORY: Voice DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The SILENCE_DETECTED_STATUS notifies the Host that a CNG tone was not detected within the user-defined time limit. The notification only occurs if a CNG_DETECT_ON_COMMAND has been previously issued. Once silence has been detected, the JT Fax enters into Voice mode. The Host has the following options 1. voice commands, 2. wait for DTMF detection, 3. return to data and continue call, and 4. return to command and terminate call. EXAMPLE: . . . SILENCE_DETECTED_STATUS - FAX PC_ACK - Host REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, DTMF_DIAL, DTMF_DETECT_ON_COMMAND ************************************************************************** Software_Reset_Command Characteristic Description COMMAND: Software_Reset_Command CODE: 031H CATEGORY: Control DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The SOFTWARE_RESET_COMMAND instructs JT Fax to initiate a soft reset function. The command is placed in the API block location, RESET_BOARD, at offset 51H. When RESET_BOARD is set to a SOFTWARE_RESET_COMMAND, the hardware is reset and all buffers are cleared (soft fonts are not cleared). After the default carrier time is reset to the value contained in BUFFER_AREA, JT Fax is in command state. EXAMPLE: SOFTWARE_RESET_COMMAND - Host (wait for 3 seconds) IDLE_STATUS - FAX RELATED FUNCTIONS: HARDWARE_RESET_COMMAND, SET_CARRIER_COMMAND ************************************************************************** Speaker_Off_Command Characteristic Description COMMAND: Speaker_Off_Command CODE: 03EH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The SPEAKER_OFF_COMMAND is used when the Host wants the speaker off for VOICE setup or when using the Utility commands. In normal JT Fax operation the speaker is controlled by the SPEAKER field of the API block. EXAMPLE: SPEAKER_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: SPEAKER_ON_COMMAND ************************************************************************** Speaker_On_Command Characteristic Description COMMAND: Speaker_On_Command CODE: 03DH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The SPEAKER_ON_COMMAND is used when the Host wants the speaker on for VOICE setup or when using the Utility commands. In normal JT Fax operation the speaker is controlled by the SPEAKER field of the API block. EXAMPLE: SPEAKER_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: SPEAKER_OFF_COMMAND ************************************************************************** Xmit_Command Characteristic Description COMMAND: Xmit_Command CODE: 01H CATEGORY: FAX Transmit DIRECTION: Host to JT Fax INPUT to JT: Phone number in buffer area (if desired) Header in buffer area FAX data in swap buffer EOPFLAG EOTFLAG OUTPUT from JT: LOAD_DATA_COMMAND BOARD_ACK SUCCESSFUL_TRANSMIT BUSY RING status messages DEFAULT: Not applicable DESCRIPTION: This API is the FAX transmit command. The transmit command operates the speaker, dials the phone number, and transfers the fax. After the dial is completed, the Host is prompted for the header information. This header is placed on the top page of the fax and a portion is used for the TSI. Once the header is received, the host is prompted for the data with the LOAD_DATA_COMMAND. The data is passed in the DATA_AREA location. The Host must issue a PC_ACK when all the data is loaded into DATA_AREA. Further LOAD_DATA_COMMANDs are issued until the fax transfer is complete. The Host terminates the transfer with an EOT command. The time constraint placed on the Host for data transfer is based on the format of the data. In the JT Fax format, approximately 10k of data can be buffered on the FAX. So, timing during transmission is only critical during the first initial stages of buffering. The initial stages require data to be loaded as fast as possible. If the data requires translation, the timing is more critical. The Host buffers 2 initial loads. The worst case scenario for ASCII and PCX is approximately 5 seconds between data loads at 14400 bps before data is lost. The data placed in DATA_AREA may be in one of three formats. These are: ASCII_FORMAT 00H PCX_3_FORMAT 01H JT_FAX_FORMAT 63H The formats are discussed in detail in Chapter 7. Characteristic Description EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host (load baud rate if desired) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . EOT - Host TRANSMIT - FAX BOARD_ACK - FAX PC_ACK - Host IDLE - Host When the Host is transmitting multiple pages and wants to control the page breaks, an EOP is issued instead of PC_ACK. To control the length of the page the min_page parameter should be used. RELATED FUNCTIONS: IDLE, EOT, PC_ACK, BOARD_ACK, SET_CARRIER_COMMAND, FAX_MODE_COMMAND, BUSY_COMMAND, ENHANCED_MODE_ON_COMMAND, dial modifiers ========================================================================== Chapter 6 Shared Memory Interface Description All functions, status codes, return codes, and data pass through the JT Fax shared memory interface. The interface address is selectable in 4k increments and is located between memory address 8000H to 0FFFFH (see the Hayes JT Fax 14400B Dual Installation Guide). If the C programming language is used for the Host program, then the compiler should pack the API structure on byte boundaries. This is accomplished in Microsoft C by using the following statement: #pragma pack (1) ************************************************************************** Shared Memory Interface Structure The shared memory interface structure is organized as follows: Note: This map is used with Fax A at offset 0 and Fax B at offset 800H. Offset Length Name Usage/Description -------------------------------------------------------------------------------------- 0000H-0005H ID Location of board address 0005H-0001H COMMAND Commands and Status 0006H-0001H RING_COUNT Ring to answer on 0007H-0001H CALL_MODE Transmit/Receive 0008H-0001H FILE_TYPE ASCII, PCX, JT Fax 0009H-0001H XMIT_FONT Resolution, Font number 000AH-0001H MIN_PAGE Force 11 inch page flag 000BH-003DH BUFFER_AREA Phone numbers & headers 0048H-0002H SECONDS Length of connection 004AH-0001H SPEAKER on, off, on till connect 004BH-0001H RET_CODE Completion code 004CH-0002H PAGES Number of pages sent 004EH-0002H DATA_LEN Length of valid data 0050H-0001H BAUD_RATE 2400, 4800, 7200, 9600, 12000, 14400 baud 0051H-0001H RESET_BOARD Reset the board 0052H-0001H STATUS_CODE Extended status 0053H-0001H LINE_COUNT Number of lines transmitted 0054H-0001H RCV_FILE_TYPE Receive file type 0055H-0002H RCV_LINE Lines per page received (ASCII) 0057H-0001H RESERVED Not used at this time 0058H-07A8H DATA_AREA Used for file data The following paragraphs describe the Shared Memory Interface fields: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ID Field where the product keyword is located. Set by Board. The ID field is used to locate the board at the start of a program. Memory can be searched from segment 8000H to F000H for the 'ASHER' keyword at each 2K boundary. In the JT Fax 14400B tool kit, FINDFAX.ASM file contains an assembler routine that locates the 'ASHER' string. This allows the Host program to locate the board in memory without knowing the exact memory location. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ COMMAND Field for command handshakes. Set by Host and JT Fax. The COMMAND byte is used to pass most commands to the board and some status bytes are returned through this byte. The status bytes are JT Fax 9600B compatible codes described in Chapter 3. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RING_COUNT Field for ring to answer count. Set by Host. Ring_count is a status byte used for the ring-to-answer-on count. The count allows the board to answer the call when a certain number of rings is reached. This byte should be set to 0FH if ring detection is not desired. For originate only applications and manual answers, a status command RING is provided in the first byte of buffer area. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CALL_MODE Field for answer or receive mode. Set by Host. Call_mode should be set prior to making or receiving a call. The call modes currently supported by the board are: Code Description --------------------------------- 00H Call to transmit a fax 02H Answer to receive a fax Note: This option is currently not supported. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ FILE_TYPE Field for specific file type. Set by Host. File_type should be set prior to a transmit. The file_type parameter determines the processing necessary for the JT Fax 14400B Dual to convert data to T.4 format. The field can have the following values: Code Description ------------------------- 00H ASCII_FORMAT 01H PCX _3_FORMAT 63H JT_Fax_FORMAT For additional information see File Formats in Chapter 7. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ XMIT_FONT Field for JT Fax font resolution. Set by Host. Xmit_font field is only used to transmit of data. The field should be set prior to all transmits, and is used to select the font for ASCII and high/low resolution for other types of transmits. If ASCII data is being sent in any font other than font0 (80/low) then that font must be loaded onto the board prior to the transmit. If any other form of data is being sent (i.e., PCX, JT Fax) then 00H and 01H should be used to indicate the resolution. Code Description ---------------------------------------------- 00H 80 character/line low resolution 01H 80 character/line high resolution 02H 132 character/line low resolution 03H 132 character/line high resolution For additional information see JT Fax Formats section Chapter 7. MIN_PAGE Field set for page minimum length. Set by Host. If min_page is zero when the transmit command is issued, all pages will be forced to be at least 11 inches long. If MIN_PAGE is set, the number of lines in linecount is used. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BUFFER_AREA Field for FAX ID, phone number. Set by Host, JT Fax and status messages. Buffer_area is an area used to pass the phone number to be dialed, the header line to put on the top of each page, fax ID and enhanced return codes. The default time-out-after-dial (binary) can also be loaded into buffer_area on start up or can be configured by using the SET_CARRIER_COMMAND function. For more information on buffer area see section Appendix E. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SECONDS Field for time of phases. Set by JT Fax. Seconds is a timer that resets to zero at the start of a call or answer and again after receiving the first carrier from the other end (to get a true connection time). The host has the option to reset the timer. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SPEAKER Field for speaker control. Set by Host. The Speaker byte controls operation of the speaker as follows: Code Description --------------------- 00H SPKR_ALWAYS_ON 01H SPKR_ON_TILL_CONNECT 02H SPKR_ALWAYS_OFF +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RET_CODE Field for errors and JT Fax 9600B status. Set by JT Fax. Ret_code is the error return code from a fax operation. For compatibility, the two 9600B status codes are returned in this field. The values are: Code Description ----------------------------- 0 Successful Transmit 1 No Dial Tone 2 No Carrier 3 Busy 7 Clipped The Handshaking/Compatibility return codes are: Code Description ------------------------------- 128 Bad DIS REC 129 Bad Training 130 Phase B Error 131 Bad MPS Response 132 Bad MCF Response 133 Bad DSC Response 134 Phase D Error 135 No PC Acknowledge 136 No Data Received 137 Page Error on Receive 138 Successful Receive Other Return Codes are described in Appendix B. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PAGES Field for number of pages. Set by JT Fax. Pages is a word that keeps a running count of the number of pages sent. It is updated during transmission and reception. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA_LEN Field for number of bytes in DATA_AREA Set by Host and JT Fax. Fax Data_len is a word that holds the number of data bytes valid in the data_area. It must be loaded prior to a load_data command. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BAUD_RATE Field for connect speed. Set by Host and JT Fax. Baud_rate is a byte that shows the connection speed. At the start of each transmission it defaults to 14400 BPS. For compatibility, the receive defaults to 9600 BPS. 14400 BPS receive can be obtained by issuing the FAX_144_MODE_ON API. The BAUD_RATE field has the following values: Code Description --------------------- 00H 2400 BPS 01H 4800 BPS 02H 7200 BPS 03H 9600 BPS 04H 12000 BPS 05H 14400 BPS The baud rate may be monitored for correct connect speed. Note: This rate may also be modified by the host for transmit speed. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RESET_BOARD Field for reset. Set by Host. This byte is used to reset the board after an error, or it can be done on exit to set the board to a known state. The API HARDWARE_RESET_COMMAND in this byte causes a full reset of the board, including memory testing and clearing and can take 5-6 seconds to complete. The API SOFTWARE_RESET_COMMAND causes a partial reset and does not clear memory. It disconnects the phone line and returns to command state. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS_CODE Field for enhanced status. Set by JT Fax. The status code field provides additional status for Fax transmission. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ LINE_COUNT Field for number lines. Set by Host. Line_count is a byte that gives the number of lines to put on the page before a page break. The function is only applicable when MIN_PAGE is set to 0 and during ASCII transmits. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RECV_FILE_TYPE Field used to indicate the type of file. Set by Host. The values are: Code Description ------------------------- 01H PCX_3_FORMAT 63H JT_FAX_FORMAT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RECV_LINE Field used to indicate the number of PCX lines recieved. Set by JT Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA_AREA Field for data transfer. Set by Host. This is the area used to buffer data out to the board. It is 1960 bytes long. ========================================================================== Chapter 7 File Formats This chapter describes the JT Fax file conversion formats. These formats include: PCX ASCII JT Fax. ***************************************************************************** PCX Conversion The PCX conversion supplied with JT Fax 14400B Dual is a receive "on-the- fly" conversion at all speeds supported. The data presented to the Host includes a PCX 3 header and data. All data is in black and white, 1-plane, 1 bit-per-pixel, xmax (horizontal axis) = 1727; color is not supported. Additional fields are provided for the PCX receive. These new fields are receive type (BYTE) at offset 55H and receive_lines at offset 56H (WORD). The following commands pertain to PCX conversion: REC_PCX_ON_COMMAND REC_PCX_OFF_COMMAND (default) The length of the PCX file (in lines) is reported in the new variable named RECV_LINES and is correct when the EOT is received from the fax. The RECV_LINES count should be placed in the PCX file by the Host. The offset into the PCX file for this count is 10 (zero relative) and is WORD value. The PCX_RECV_ON_COMMAND must be issued after setting Recvfile type to PCX. ************************************************************************** ASCII The following sections describe ASCII font management in JT Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Fonts The JT Fax 14400B Dual board gives the user the flexibility of 4 different fonts. These fonts are identified as font.0, font.1, font.2, and font.3. Font.0 is the default font and Fonts 0-3 are available as user defined fonts. The fonts are designed in two resolutions, low and high resolution. Low resolution is defined as an 18-bit by 16-row character cell. High resolution is defined by a 18-bit by 32-row character cell. All fonts are available in the JT FAX software toolkit under the files font.0, font.1, font.2, and font.3. Contact Hayes Customer Service, see Appendix I. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Mode There are two different modes for resolution, normal mode and compressed mode. In normal mode the character cell consists of 18 bits per character cell line. Normal mode is the default mode for the default font used by JT Fax. The JT Fax compressed mode consists of a character cell that is 13 bits-per-character line. Both modes support 80 and 132 columns. Below is a list of these fonts with their corresponding resolution. Font Name Resolution ----------------------------------------------------------- Low res faxfont.0 200x100 80 columns normal mode High res faxfont.1 200x200 132 columns normal mode Low res faxfont.2 200x100 80 columns compressed High res faxfont.3 200x200 132 columns compressed +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Font Modifications To modify these fonts, the programmer can execute the font generation program, fontcon.com. This program can be downloaded in the file faxfont.arc (contact Hayes Customer Service, see Appendix I). If the user wishes to create a custom font file without the use of the fontcon.com program, the fonts must be bit mapped as explained in the following paragraphs. The bit map is arranged in a "pixel line" format. The character must be converted into a bit-format byte aligned. Character tables start with the ASCII character for a space " " and end with an ASCII character for a "~". The character is assembled into a 4x16 byte matrix in low resolution and a 4x32 byte matrix for high resolution. All parts of the character cell must be represented. In lower case characters, the additional white space above the character must be included. For example, the lower case ASCII 'a' has several lines of white space above the 'a'. This must be included. Within each matrix cell, the font character is defined by 4 bytes per line by: low resolution = 18 bits < 22 bits unused > high resolution = 13 bits < 27 bits unused >. All unused bits are ignored and are set to a 0xff. For example, a '!' in low-resolution normal mode 4x16 80-column, with a bit set for white would be as follows: Row Bitmap Row Bitmap -------------------------------------------------------------------------------- 1 0xff, 0xff, 0xc0, 0xff (top space) 9 0xff, 0xf9, 0xc0, 0xff (char) 2 0xff, 0xf0, 0xc0, 0xff (char) 10 0xff, 0xff, 0xc0, 0xff (char) 3 0xff, 0xf0, 0xc0, 0xff (char) 11 0xff, 0xff, 0xc0, 0xff (char) 4 0xff, 0xf0, 0xc0, 0xff (char) 12 0xff, 0xf9, 0xc0, 0xff (char) 5 0xff, 0xf0, 0xc0, 0xff (char) 13 0xff, 0xff, 0xc0, 0xff (space) 6 0xff, 0xf0, 0xc0, 0xff (char) 14 0xff, 0xff, 0xc0, 0xff (space) 7 0xff, 0xf0, 0xc0, 0xff (char) 15 0xff, 0xff, 0xc0, 0xff (space) 8 0xff, 0xf9, 0xc0, 0xff (char) 16 0xff, 0xff, 0xc0, 0xff (space) The JT Fax font generation software offers the user the ability to create or modify the ASCII coded fonts used by the JT Fax products. The user will need to download FAXFONT.ARC and FONT.ARC from the HAYES BBS (see Appendix I). For development purposes, the programmer is advised to create a font sub- directory containing four sub-directories (one for each font), and copy the proper files into each sub-directory as follows: Directory Contents --------------------------------------------------------------- Font All directories below. Font 0 Low resolution normal 80 columns. Include FONT0.EXE, FONTSCRN, and FAXFONT.0. Font 1 High resolution normal 80 columns. Include FONT1.EXE, FONTSCRN, and FAXFONT.1. Font 2 Low resolution compressed 132 columns. Include FONT2.EXE, FONTSCRN, and FAXFONT.2. Font 3 High resolution compressed 132 columns. Include FONT3.EXE, FONTSCRN, and FAXFONT.3. To use the graphics editor, move to a font sub-directory, and type FONTX.EXE, where X is the font number to modify. The editor then appears, along with some instructions. EXAMPLE: C:/font/2 followed by: font2 This example illustrates the suggested sub-directory structure and the procedure for editing font2 (low resolution compressed). The FONTSCRN file is a graphic overlay for the font editor. When the "Which character to edit" prompt is displayed, you may enter a keyboard character. To enter a non-keyboard character, find its ASCII code, hold down the key and enter the ASCII code with the numeric keypad. To move about in the font field, use the cursor control keys. The instructions appearing on the screen guide you to edit a font. When the font is complete, enter to save it. The high resolution fonts allow editing the top and bottom half of each pixel in the font field. In the high resolution fonts, use T and B to paint or delete the Top or Bottom of a font element. As a font is modified, a FAXFONT.TMP file is created. FONTCON.COM is then converts the FAXFONT.TMP file into the format used by the JT FAX software. The syntax is: FONTCON FAXFONT.TMP FAXFONT.X The FAXFONT.X is the new file you created, and is now ready to be copied into your FAX directory for testing. EXAMPLE: c:\font\2> fontcon faxfont.tmp faxfont.2 The example converts the FAXFONT.TMP from sub-directory FONT2 and converts it to FAXFONT.2. Font generation may require several iterations of some character. This is normal, as fonts displayed on a CRT appear different than when received on a Fax machine. Note: Only one soft font can be downloaded. This is the font used by the Fax. Only one soft font at any given time can be downloaded and used. Soft Font cannot be used with the OEM_CODE command. ************************************************************************** JT Fax Format The JT Fax file format is based on a modified Huffman coding used in Group 3 facsimile preceded by an eight byte header. The Huffman coding schema is in Appendix A.) The header format is as follows: Offset Explanation --------------------------------------------------------------- 0 A zero byte 1 Either 0 or 40H. If the 40H bit is set, then the file is a high resolution (200x200) file. 2 reserved 3 reserved 4 reserved 5 reserved 6 reserved 7 reserved The Huffman data format is a data compression method based on run length encoding. One hundred and twenty-eight run lengths (64 white and 64 black), thirteen make-up codes, and an end-of-line (EOL) are defined by the ITU-T. These codes are available in Appendix A. The JT Fax only supports files of 1728 pixels per line, the only required format for a Group 3 fax machine. The EOL command is used to end every line in a fax-format file. It consists of 11 zero bits and a one bit. Additional zero bits, or fill bits, can be inserted prior to the EOL command. Although some JT Fax files use fill bits so that each line of fax data begins on a byte boundary, inclusion of fill bits is not necessary for any JT Fax family product. The JT Fax file is organized as follows: Eight byte header EOL Huffman compressed line EOL Huffman compressed line EOL . . . Huffman compressed line EOL Huffman compressed lines are generated using the tables in Appendix A. Huffman compression assumes that every line begins with a white run length, alternates to a black, back to white, up to an EOL. If a run length is greater than 63, then a make-up code is used. A make-up code is always followed by a run length of the same color, even if the length is zero. The Huffman codes are sent left-bit first (as seen in the table), but must be assembled so that the low-order bit in each byte is the first to send. The following example demonstrates this process: Assume the input line of data is: 30 white, 10 black, 130 white, 192 black, 1366 white From the table in Appendix A: 30 white = 00000011 10 black = 0000100 130 white = 128 white = 10010 (make up-code) + 2 white = 0111 192 black = 192 black = 010111(make-up code) + 0 black = 0000110111 1366 white = 1344 white = 011011010 (make-up code) + 22 white = 0000011 EOL = 000000000001 Put the bits in a stream: 00000011000010010010011101011100001101110110110100000011 000000000001 Break them out, eight bits at a time: 00000011-00001001-00100111-01011100-00110111-01101101- 00000011-00000000-0001 Reverse the bit-order: 11000000-10010000-11100100-00111010-11101100-10110110- 11000000-00000000-xxxx1000 The xxxx could be the first four bits from the next Huffman stream of data, or four additional 0s could be inserted on the other side of the 1, making the last byte 10000000. The final hex code for this line is: C0 90 E4 3A EC B6 C0 00 80 ========================================================================== Appendix A ITU-T T.4 Huffman Encoding This appendix defines the T.4 Huffman encoding used in JT Fax. Run Length White Code Black Code ------------------------------------------------ 0000 00110101 0000110111 0001 000111 010 0002 0111 11 0003 1000 10 0004 1011 011 0005 1100 0011 0006 1110 0010 0007 1111 00011 0008 10011 000101 0009 10100 000100 0010 00111 0000100 0011 01000 0000101 0012 001000 0000111 0013 000011 00000100 0014 110100 00000111 0015 110101 000011000 0016 101010 0000010111 0017 101011 0000011000 0018 0100111 0000001000 0019 0001100 00001100111 0020 0001000 00001101000 0021 0010111 00001101100 0022 0000011 00000110111 0023 0000100 00000101000 0024 0101000 00000010111 0025 0101011 00000011000 0026 0010011 000011001010 0027 0100100 000011001011 0028 0011000 000011001100 0029 00000010 000011001101 0030 00000011 000001101000 0031 00011010 000001101001 0032 00011011 000001101010 0033 00010010 000001101011 0034 00010011 000011010010 0035 00010100 000011010011 0036 00010101 000011010100 0037 00010110 000011010101 0038 00010111 000011010110 0039 00101000 000011010111 0040 00101001 000001101100 0041 00101010 000001101101 0042 00101011 000011011010 0043 00101100 000011011011 0044 00101101 000001010100 0045 00000100 000001010101 0046 00000101 000001010110 0047 00001010 000001010111 0048 00001011 000001100100 0049 01010010 000001100101 0050 01010011 000001010010 0051 01010100 000001010011 0052 01010101 000000100100 0053 00100100 000000110111 0054 00100101 000000111000 0055 01011000 000000100111 0056 01011001 000000101000 0057 01011010 000001011000 0058 01011011 000001011001 0059 01001010 000000101011 0060 01001011 000000101100 0061 00110010 000001011010 0062 00110011 000001100110 0063 001101000 00001100111 0064 11011 0000001111 0128 10010 000011001000 0192 010111 000011001001 0256 0110111 000001011011 0320 00110110 000000110011 0384 00110111 000000110100 0448 01100100 000000110101 0512 01100101 000000110110 0576 01101000 000001101101 0640 01100111 000000100100 0704 011001100 000000100101 0768 011001101 000000100110 0832 011010010 000000100111 0896 011010011 000000111000 0960 011010100 000000111001 1024 011010101 000000111010 1088 011010110 000000111011 1152 011010111 000000111010 1216 011011000 000000111011 1280 011011001 000000101000 1344 011011010 000000101001 1408 011011011 000000101010 1472 010011000 000000101011 1536 010011001 000000101100 1600 010011010 000000101101 1664 011000 000000110010 1728 010011011 000000110011 EOL 000000000001 000000000001 ========================================================================== Appendix B Return Codes The following paragraphs describe the correct time to read the RET_CODE field of the JT Fax API window. When the PC is finished receiving data from the JT Fax board, then the JT Fax issues an EOT in the Command field. The JT Fax board sends a BOARD_ACK in the Command field when the transmission is complete. At this time the PC should read the RET_CODE field of the JT Fax API window. If the command field changes to an error, the RET_CODE is valid. Some of the errors are fatal and some are operational. Fatal errors halt execution with an error flag while operational errors are less severe and will allow the Fax operation to continue. Operational errors are read at the end of a receive or transmit. Once an error occurs, Buffer area [0] can be checked for additional return code information. If available, the byte will be non-zero. Also, the status field can be checked to determine the state of the JT Fax. The following paragraphs describe the JT Fax Return Codes. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 00 MNEMONIC: SUCCESSFUL_TRANSMIT DESCRIPTION: A successful transmit occurred with no errors. This is a JT Fax compatibility code. RECOMMENDED ACTION: Fax was good. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 01 MNEMONIC: NO_DIALTONE DESCRIPTION: A dial command was issued with either a 'W' dial modifier or a wait for dialtone in byte 0 of the dial string. Fatal error. RECOMMENDED ACTION: Check cable connections and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 02 MNEMONIC: NO_CARRIER DESCRIPTION: A complete connection was not established. A NO_CARRIER error appears after the dial and before the Phase A completion. JT Fax compatibility. Fatal error. RECOMMENDED ACTION: Check phone number and retry call. Try enabling enhanced mode to determine the exact cause of error. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 03 MNEMONIC: BUSY DESCRIPTION: The called phone number was busy or a circuit was busy. Fatal error. RECOMMENDED ACTION: Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 04 MNEMONIC: PC_COMM_ERROR DESCRIPTION: Invalid response or command while in command state. Fatal error. RECOMMENDED ACTION: Check Host for problems. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 07 MNEMONIC: CLIP DESCRIPTION: An ASCII file was converted to T.4 data and a line was longer than 216 bytes (including spaces and tabs). This error only occurs during a FILETYPE - ASCII conversion during transmit. The error does not cause an abort to the transmit. Operational error. RECOMMENDED ACTION: Continue with fax or terminate call with a SOFT_RESET. Modify file before retransmitting. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 10 MNEMONIC: DIALING_ERROR DESCRIPTION: A dial command was issued and one of the characters in the dial string was invalid. Fatal error. RECOMMENDED ACTION: Check dial string and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 12 MNEMONIC: FONT_TOO_LARGE DESCRIPTION: The soft font file was too large for the soft font area. This error could also apply to the OEM code load. Fatal error. RECOMMENDED ACTION: Shorten soft font and retry. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 19 MNEMONIC: TRANSMIT_PAGE_ERROR DESCRIPTION: Transmit page was not received correctly. Operational error. RECOMMENDED ACTION: Retry call. Check remote fax machine and/or telephone line.. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 20 MNEMONIC: PHASE_A_ERROR DESCRIPTION: The transmitted Fax was not received correctly. Operational error RECOMMENDED ACTION: Retry call. Call Hayes Customer Service. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 21 MNEMONIC: NO_CNG_ERROR DESCRIPTION: No 1100 Hz CNG tone was detected from the Caller. If CNG detect is enabled this informs the user that a CNG was not detected. If CNG detect is not enabled then this error will not occur. Operational error. RECOMMENDED ACTION: Hang up the Fax call and use a voice connection. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 30 MNEMONIC: PHASE_C_ERROR DESCRIPTION: This a general error for Phase C. Operational error. RECOMMENDED ACTION: Retry Call. Call Hayes Customer Support. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 32 MNEMONIC: MAX_FRAME_ERR DESCRIPTION: The FAX handshake frame was too large for the JT Fax buffers. This is usually caused by a noisy line. Fatal error. RECOMMENDED ACTION: Check line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 35 MNEMONIC: LONG_LINE_ERROR DESCRIPTION: An error occurred in the reception of data. A line was received and decoded as being to long. This only occurs if the line is noisy. RECOMMENDED ACTION: Check phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 36 MNEMONIC: PERCENTAGE_ERROR DESCRIPTION: Percentage of data errors on receive versus the amount of correctly received data. Operational error. RECOMMENDED ACTION: Check line for connection or noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 40 MNEMONIC: PHASE_D_ERROR DESCRIPTION: A response from the remote machine was not received after transmit during the required time. Operational error. RECOMMENDED ACTION: Check line for connection or noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 60 MNEMONIC: DTMF_ERROR DESCRIPTION: A valid DTMF signal was not received. Operational error. RECOMMENDED ACTION: Check connection. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 61 MNEMONIC: NO_DTMF_TIMEOUT_ERROR DESCRIPTION: A manual DTMF command was issued. The activity timer expired with no DTMF. Operational error. RECOMMENDED ACTION: Check connection and line noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 62 MNEMONIC: VOICE_ERROR DESCRIPTION: An error occurred during the operation of a voice command. Fatal error. RECOMMENDED ACTION: Retry voice operation. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 122 MNEMONIC: HDLC_MIN_SIZE_ERROR DESCRIPTION: The HDLC frame of the T.30 handshake was shorter than expected. Invalid frame was received. Fatal error. RECOMMENDED ACTION: Check remote Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 123 MNEMONIC: HDLC_CRC_ERROR DESCRIPTION: The HDLC frame of the T.30 handshake did not have a good CRC. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 124 MNEMONIC: NEGOTIATING_TRAIN_DCN_ERROR DESCRIPTION: A DCN was received while the Fax was negotiating speed. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote Fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 125 MNEMONIC: HDLC_FRAME_TIMOUT_ERROR DESCRIPTION: A time-out occurred while waiting for the HDLC T.30 handshake. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote Fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 126 MNEMONIC: NO_DCS_REC DESCRIPTION: A DCS was not received from the caller. Caused by equipment malfunction at remote site. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 128 MNEMONIC: BAD_DIS_REC DESCRIPTION: A DIS received from the callee was in error. Possible remote equipment problems. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 129 MNEMONIC: BAD_TRAINING DESCRIPTION: An error occurred during the training phase of the call. Line quality does not support speeds available. Fatal error. RECOMMENDED ACTION: Check remote fax, phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 130 MNEMONIC: PHASE_B_ERROR DESCRIPTION: An error occurred during the negotiation phase of the call. This could be a failure to negotiate parameters. Fatal error. RECOMMENDED ACTION: Check type of remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 131 MNEMONIC: BAD_MPS_RESPONSE DESCRIPTION: In Phase D the negotiation for Multiple pages was in error. Operational error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 132 MNEMONIC: BAD_MCF_RESPONSE DESCRIPTION: A message confirmation after training did not occur. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 133 MNEMONIC: BAD_DCS_RESPONSE DESCRIPTION: A bad response from the DCS message caused this error. Fatal error. RECOMMENDED ACTION: Check remote fax and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 134 MNEMONIC: PHASE_D_ERROR DESCRIPTION: An error occurred during the operation of a voice command. Fatal error. RECOMMENDED ACTION: Check phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 135 MNEMONIC: NO_PC_ACK DESCRIPTION: A PC_ACK was not received in response to the LOAD_DATA_COMMAND. A 5 sec time-out error to the host. Operational error. RECOMMENDED ACTION: Fax may have errors. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 136 MNEMONIC: NO_DATA_RECEIVED DESCRIPTION: No data was received from the remote fax. Caused by a line drop or the remote fax abnormally terminated the call. RECOMMENDED ACTION: Check phone line. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 137 MNEMONIC: PAGE_ERROR DESCRIPTION: Page data was received in error from the remote fax. RECOMMENDED ACTION: Check phone line. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 138 MNEMONIC: SUCCESSFUL_RECEIVE DESCRIPTION: Fax was received successfully. RECOMMENDED ACTION: Ready for next fax transaction. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 243 MNEMONIC: ROCK_ERROR DESCRIPTION: This error indicates that the Rockwell chip is not responding. Operational error. RECOMMENDED ACTION: Turn off power and reinstall the board. If this does not correct the problem, contact Hayes Customer Service. ========================================================================== Appendix C Status Codes Status codes do not require a response from the Host. The code will reflect the state of the JT Fax 14400B Dual. It is not necessary to issue a PC_ACK command when receiving the status notification. However, the IDLE command in the Status Code field is recommended because it incorporates a more fault-tolerant coding algorithm. Status codes may be used to provide additional information during a fax call procedure. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 01 MNEMONIC: RING DESCRIPTION: A ring was detected during the dialing of number. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 02 MNEMONIC: SUBSCRIBER_INFO DESCRIPTION: CSI/TSI info is available in the buffer area. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 0E MNEMONIC: PHASE_E_START DESCRIPTION: Start of T.30 Phase E. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 10 MNEMONIC: PHASE_A_START DESCRIPTION: Phase A begins call establishment. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 11 MNEMONIC: PHASE_B_START DESCRIPTION: Phase B starts the initial negotiation of speed and format. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 12 MNEMONIC: PHASE_C_START DESCRIPTION: Start of Phase C for fax transmission. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 13 MNEMONIC: PHASE_D_START DESCRIPTION: Start of Phase D and post message handling. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 20 MNEMONIC: NEGOTIATING_SPEED DESCRIPTION: Speed negotiation is occurring during Phase B. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 21 MNEMONIC: CONNECT DESCRIPTION: Indicates that all handshaking is complete and fax data will be transmitted. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS CODE: 22 MNEMONIC: VOICE_MODE DESCRIPTION: Notification of automatic voice mode is entered. ========================================================================== Appendix D T.30 Phase Descriptions Fax communication occurs in phases. As defined by the ITU-T the phases are: ---------------------------------------- Phase A Call Establishment Phase B Pre-message Procedure Phase C In-message Procedure Phase D Post Message Procedure Phase E Call Release The following sections describe the phases as they relate to the JT Fax 14400B Dual in the default configuration. ************************************************************************** Phase A The calling fax (caller) goes "off hook" and listens for dialtone. After dialtone has been detected, dialing the phone number starts. The dialing call progress includes the detection of the ring and busy signals. In addition to the call progress, the T.30 1100-Hz CNG tone is transmitted with a cycle time of 0.5 seconds on and 3 seconds off. Transmission of the CNG cycle continues until the receiving fax (callee) transmits a T.30 2100 Hz CED. Once the CED is detected, the caller waits for a silent period. The silent period terminates Phase A for the caller. The callee detects a "ring" signal and goes to off-hook. 1.8 seconds after going "off hook", the callee transmits the 2100-Hz CED for 2.8 seconds. The ending of the CED terminates Phase A for the callee. ************************************************************************** Phase B After a silent period of 75 milliseconds the receiver transmits a CSI, NSF and a DIS frame. The DIS frame contains the negotiating parameters. Once the DIS is transmitted, the receiver looks for a response from the caller. During a 3.5 second time-out period, the receiver receives a DCS frame from the caller. Once a mode has been selected from the DCS frame, the caller transmits a training sequence 75 milliseconds later. If the training sequence is within error parameters, the receiver transmits a TCF. The TCF marks the end of Phase B for the receiver. The caller detects a silent period and starts the pre-message handshake. The handshake begins with the reception of the DIS frame. After the reception of the DIS frame, the TSI and DCS frames are transmitted. The caller sends a training signal for 75 milliseconds after sending the DCS frame. The training signal has a duration of 1.5 seconds. If the signal was received without errors by the receiver, a CFR frame is received. The reception of the CFR frame marks the end of Phase B for the caller. ************************************************************************** Phase C The caller transmits the Fax message 75 milliseconds after the CFR. The format of the message is T.4 Huffman encoded data. A RTC sequence will be sent at the end of the page to signal the receiver to transition into Phase D. The receiver receives the Fax message and examines the T.4 codes for errors. A "TIC" mark will be printed in the left most column to signify a line error. When a RTC is received, the receiver transitions into Phase D. ************************************************************************** Phase D The caller transmits one of the following: EOM MPS to start the procedure to re-enter Phase C EOP frame to proceed to Phase E. After receipt of a MCF from the receiver, the caller goes to either Phase E or re-enters Phase C. To re-enter Phase C, the caller transmits another train sequence. The caller looks for a confirmation of the retrain in the form of a RTP frame. Once an RTP is received, the caller re-enters Phase C. Exiting to Phase E requires only the reception of a MCF. The receiver waits for a EOM, MPS or EOP frame. Upon receiving a MPS or EOM frame, the receiver transmits a MCF. After transmitting the MCF frame, the receiver looks for a training signal. If the signal is within error limits, the receiver transmits a CFR. Transmitting the CFR marks the end of Phase D and the receiver re-enters Phase C. If an EOP frame was received, the receiver transmits a MCF and proceeds to Phase E. ************************************************************************** Phase E The caller sends a DCN frame to the receiver and disconnects the telephone line. The receiver waits for the reception of a DCN frame. After receiving a DCN, the receiver disconnects the telephone line. ========================================================================== Appendix E Buffer Area Layout The BUFFER_AREA is a multipurpose area used in several commands. The following chart defines the buffer area during different stages of a Fax operation. Operation Layout -------------------------------------------------------------------------------- XMIT - TelephoneNumber BYTE 0 - 60 used for phone number. XMIT - Header BYTE 0 - 19 used for TSI/CSI information (optional if TSI/CSI command used) BYTE 55 used for page number; followed by space BYTE 56-58 padded with spaces. All other operations require the following: BYTE 0 location WORD 0 - 1 location in INTEL Format LONG 0 - 3 location in INTEL Format The buffer area is also used to transmit default CSI/TSI information. A zero in buffer [0] prohibits the buffer area CSI/TSI data from being transmitted. ========================================================================== Appendix F OEM Code Guidelines JT Fax provides a method to off-load code from the Server and run the code in the JT Fax while JT Fax is idle. Use the following guidelines to offload code: 1. The code must be in 8088 assembly language. 2. Code segment must be 0H. 3. Stack frame and registers must be preserved. 4. Code size including data must not be greater than 28 KB. 5. The starting address for code must be 0:8800H. 6. Soft fonts are not available while using OEM code. 7. Upon entry into OEM code the following registers contain values es: Points to the JT Fax code segment ax: Points to the OEM entry point for executing JT Fax commands bx: Points to timer service routine for user timers cx: Points to the OEM exit point ss: Points to Stack Segment sp: Points to Stack pointer. 8. Code must be in binary form. 9. Timer interrupts continue to run. ========================================================================== Appendix G Command Codes The following chart presents the JT Fax commands in numerical order by command code. Code Command --------------------------------------------- 00H IDLE_STATUS 01H XMIT_COMMAND 02H BOARD_ACK_STATUS 03H LOAD_DATA_COMMAND 04H LOAD_FONT_COMMAND 05H PC_ACK 06H ERRFLAG 08H EOPFLAG 0FH EOTFLAG 10H MANUAL_REC_COMMAND 10H RECVINIT 20H SET_CARRIER_COMMAND 21H STATUS_COMMAND 22H REC_PCX_ON_COMMAND 23H REC_PCX_OFF_COMMAND 24H ON_HOOK_COMMAND 25H OFF_HOOK_COMMAND 26H FAX_MODE_COMMAND 27H MODEM_MODE_COMMAND 28H DTMF_ON_COMMAND 29H DTMF_OFF_COMMAND 2AH DTMF_ON_TIME_COMMAND 2BH DTMF_OFF_TIME_COMMAND 2CH DTMF_DIAL_COMMAND 2DH PULSE_DIAL_COMMAND 2EH NO_BUSY_COMMAND 2FH BUSY_COMMAND 30H HARDWARE_RESET_COMMAND 31H SOFTWARE_RESET_COMMAND 32H PULSE_INTER_COMMAND 33H RESET_DATA_PUMP 34H CNG_ON_COMMAND 35H CNG_OFF_COMMAND 36H CED_ON_COMMAND 37H CED_OFF_COMMAND 3AH PULSE_BREAK_COMMAND 3BH PULSE_MAKE_COMMAND 3EH SPEAKER_ON_COMMAND 3FH SPEAKER_OFF_COMMAND 4EH EXTEND_STATUS_ON _COMMAND 4FH EXTEND_STATUS_OFF_COMMAND 50H FAX_144_MODE_ON_COMMAND 51H FAX_144_MODE_OFF_COMMAND 52H ENHANCED_MODE_ON _COMMAND 53H ENHANCED_MODE_OFF_COMMAND 54H SET_USER_TSI_COMMAND 55H SET_USER_CSI_COMMAND 5FH SETUP_VOICE_COMMAND 60H CNG_DETECT_ON_COMMAND 61H CNG_DETECT_OFF_COMMAND 62H PLAY_START_COMMAND 63H PLAY_END_COMMAND 64H REC_START_COMMAND 65H REC_STOP_COMMAND 66H EOVFLAG 67H GAIN_UP_COMMAND 68H GAIN_DOWN_COMMAND 69H SET_GAIN_COMMAND 6AH SET_SAMPLE_RATE_COMMAND 6BH SET_SLEW_RATE_COMMAND 6CH SILENCE_DETECTED_STATUS 6FH SET_ACT_TIMER_COMMAND 70H DTMF_DETECT_STATUS 71H RETURN_TO_DATA_COMMAND 72H RETURN_TO_COMMAND 73H DTMF_DETECT_ON_COMMAND 74H DTMF_DETECT_OFF_COMMAND 75H GET_DTMF_COMMAND 76H EODFLAG 77H ONLINE_VOICE_REC_ON_COMMAND 78H ONLINE_VOICE_REC_OFF_COMMAND 79H OEM_CODE_COMMAND 7AH OEM_LOAD_COMMAND 0F0H GOOD_INIT 0F1H BAD_RAM 0F2H BAD_ROM 0FFH BOARD_SYNC_COMMAND ========================================================================== Appendix H References CCITT Blue Book, Volume VII - Facscicle VII.3, "Terminal Equipment and Protocols for Telematic Services", Recommendations T.0-T.63, IXth Plenary Assembly, Melbourne, November 14-25,1988. Rockwell R144EFX bps MONOFAX Modem Designers Guide, Document No. 29800N46, November 1990. FAX, "Digital Facsimile Technology and Applications", McConnell, Bodson and Schaphorst, Second Edition, Artech House, Norwood, MA, 1992. ========================================================================== Appendix I Hayes Customer Service To obtain Warranty/Guarantee Service, call or write to the appropriate Hayes Customer Service location listed below for a return authorization number, and then return the product to that location along with (a) the return authorization number, (b) proof of date of purchase, and (c) your mailing address and telephone number, postage prepaid. Please note that if the product is returned without proof of purchase or after the expiration of the warranty/guarantee coverage period, Hayes will, at its option, repair or replace the product and charge you the then effective Hayes price for out-of-warranty/guarantee service of the product, unless Hayes has discontinued the manufacture or distribution of the product because of technical obsolescence. Americas Region Hayes Microcomputer Products, Inc. Attention: Customer Service P.O. Box 105203 Atlanta, Georgia 30348-5203 Telephone: (404) 441-1617 Telefax: (404) 449-0087 Telex: 703500 HAYES USA Online with Hayes BBS: (404) HI-MODEM or (800) US-HAYES and Hayes forums on CompuServe (GO HAYES) and GEnie information services. Note: If the carrier requires a street address, direct returns to the following address: Hayes Microcomputer Products, Inc. Attention: Customer Service 5953 Peachtree Industrial Blvd. Norcross, Georgia 30092 Asia Region Hayes Microcomputer Products, Inc. 39/F, Unit B, Manulife Tower 169 Electric Road, North Point, Hong Kong Telephone + 852 887-1037, Telefax + 852 887-7548 Telex: 69381 HAYES HX Online with Hayes BBS: + 852 887-7590 Note: This version of the "JT Fax 14400B Dual Application Developer's Guide" is a special version edited for bulletin-board downloading. As a plain ASCII character file, it therefore cannot contain any of the graphic elements provided in the printed version. The following graphic characters are used to denote the start of Chapters, 1st Level Headings, 2nd Level Headings, and Table Headings: Chapter Headings are preceded by: ========================================================================== 1st Level Headings are preceded by: ************************************************************************** 2nd Level Headings are preceded by: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Table Headings are separated from table listings by: ----------------------------------------------------------------------------- ============================================================================= CHANGE RECORD: Original ========================================================================== Chapter 1 Introduction The Hayes JT Fax 14400B Dual is a board level Fax product developed specially for "high end" server environments where throughput is a major concern. The JT Fax 14400B Dual contains two independent 14.4 KBPS Group 3-compatible fax modems, providing an interface directly to the PC ISA bus. Both fax modems interface to the host software at the speed of the ISA bus specification (i.e., 4-8 MHz). Data transfer between JT Fax and the host software can occur at the MBPS rate. In comparison, most serial based facsimile units can only transfer data in the KBPS range. Considering speed alone, the JT Fax 14400B Dual is ideal for server applications. Additional functionality is added to decrease the burden on the application software and thus the host computer. These features include: automatic T.4 encoding and T.30 handshakes receive Fax real time T.4 to PCX type 3 conversion Fax speeds of 2400 to 14400 BPS digital voice transmit and receive record/playback DTMF transmit and detection. The JT Fax 14400B Dual is designed with a simple high-speed interface. The interface does not require that the application developer know T.4 encoding or T.30 handshake protocols for ITU-T (formerly CCITT) Group 3 facsimiles. The JT Fax 14400B Dual is capable of performing all the encoding and decoding required to complete a fax call. However, if the application developer is comfortable with the encoding and decoding of the T.4 formatted data, the JT Fax 14400B Dual is versatile enough to handle this encoded data. This Application Developers Guide describes the programming procedure that comprises the JT Fax 14400B Dual Application Programming Interface (API). A list of the functions is provided along with the necessary procedure to implement the functions. Throughout, the guide presents example routines using the elements of the functions to assist the programmer with the application. Included in Appendix G is a quick reference guide of the Command Codes indexed by alphabetical listings and by numeric listing. Also available with the JT Fax 14400B Dual is the developers toolkit, which contains working Fax software with source code. Familiarity with "C" and assembly language is required to use the toolkit. Contact Hayes Customer Service for information about obtaining the JT Fax Toolkit. Distinction: JT Fax 14400B Dual is the product described in this Guide. JT Fax is a standard technology in the PC fax industry. The term fax refers to the facsimile technology. ************************************************************************** Manual Organization This Application Developer's Guide is arranged as follows: This Application/Developers Guide is arranged as follows: Chapter 1 Introduction describes the product features and the contents of the remainder of this Guide. Chapter 2 Theory of Operation briefly presents the hardware and firmware used to develop the JT Fax 14400B Dual. Chapter 3 JT Fax Toolbox describes the concepts, constructs, and structures necessary to develop API software for the JT Fax 14400B Dual. Chapter 4 Voice and DTMF Detect describes the voice and DTMF operating modes available with the JT Fax 14400B Dual. Chapter 5 Command Reference presents an alphabetical listing of all command codes available in the JT Fax API. Chapter 6 Shared Memory Interface Description introduces functions, status codes, return codes and data that is passed through the Shared Memory Interface. Chapter 7 File Formats describes the JT Fax file conversion formats. Appendix A ITU-T T.4 Huffman Encoding describes the T.4 Huffman Encoding process used by JT Fax. Appendix B Return Codes describes the timing JT Fax requires to read a return code. The appendix also includes a summary of the JT Fax Return Codes. Appendix C Status Codes provides a summary of the JT Fax Status Codes. Appendix D T.30 Phase Descriptions describes fax call processing techniques used by JT Fax. Appendix E Buffer Area Layout describes the Buffer Area used by several of the JT Fax commands. Appendix F OEM Code Guidelines defines the methodology JT Fax employs to offload code from a fax server. Appendix G Command Codes provides a complete listing of the JT Fax Command Codes in numerical order. Appendix H References lists references used in the development of the product. Glossary Glossary defines terms used in this guide. ************************************************************************** Definitions The following terms are used in this documentation: Term Definition -------------------------------------------------------------------- Host The Program written to interface with the JT Fax JT Fax, Fax The JT Fax 14400B Dual board API Application Programming Interface API Block Shared memory window BPS Bits per second WORD 2 bytes LONG 4 bytes Additional definitions are listed in the Glossary. ========================================================================== Chapter 2 Theory of Operation The JT Fax 14400B Dual board includes two, 14400-baud, Group 3 facsimile modems with voice and DTMF capabilities. The facsimile modems are divided into two independent and separate parts, Fax A and Fax B. Each Fax has an independent processor, PC address interface, data pump and telephone line interface (TELCO) section. Both modems share a single PC bus interface and a speaker connection. The speaker volume is controlled by a potentiometer on the back of the unit. Speaker on/off controls are available for both FAX A and B through functions. Fax A has the additional feature of a microphone jack. The microphone jack is provided for voice messaging applications. ************************************************************************** Shared Memory Interface - API Block The JT Fax interfaces to the PC through a shared memory interface. Access to the shared memory API Block is accomplished by two steps. Step 1: Set the memory base address set with the DIP switch (see the Hayes JT Fax 14400B Dual Installation Guide) on the JT Fax 14400B Dual board. Step 2: Scan the memory between addresses 640k and 1M for the keyword "ASHER". Once the keyword is found, the keyword address marks the beginning memory address of the JT Fax API Block. The memory address is "blocked out" in a 4 Kb section. The starting address is Fax A. Fax A utilizes the first 2 Kb for an API Block. The adjacent 2K of memory is allocated to Fax B's API Block. The shared memory interface requires no interrupt vectors to the PC, no serial port, and no drivers. The application communicates with the JT Fax shared memory using a polled interface method. Polling activation and frequency is host dependent and is determined by the application. The handshake required to communicate with JT Fax 14400B Dual utilizes the JT Fax protocol structure. The JT Fax protocol is an ACK-ACK type protocol. All data and commands use this protocol. Chapter 5 provides protocol examples for each command. The API Block contains memory windows for command protocol, control, configuration, and data. The Shared Memory Interface (see Chapter 6) details the API block. The API block's most important asset is the 1960 byte buffer for transmitting and receiving fax data. This allows additional time for the host to perform other activities. In addition, the JT Fax has a 9K buffer for transmitting and receiving Fax data. The transmit and receive capability of the JT Fax 14400B Dual board offers two modes of operation for the host: Manual and Automatic. Manual requires the host to start the initial call/answer procedure by issuing commands that force the Fax into the "off-hook" condition. The remainder of the call/answer is automatic. In the Automatic procedure, the call/answer is handled by issuing the appropriate transmit and receive commands. The "off-hook" condition is controlled by the Fax. ************************************************************************** Transmitting Transmitting with the JT Fax 14400B Dual is straight-forward since the modem automatically executes the T.4 and T.30 handshake. The host is only responsible for the phone number, data to be transmitted, and the simple handshake protocol to JT Fax and the host. The following is a high level Program Design Language (PDL) example demonstrating a transmit. send SYNC_COMMAND (only after power up ) wait for response GOOD_INIT write to configure API block write phone number in BUFFER_AREA send XMIT_COMMAND wait for response BOARD_ACK_STATUS write header information into BUFFER_AREA send PC_ACK wait for response LOAD_DATA_COMMAND write data to DATA_AREA send PC_ACK continue to write data till END_OF_FILE is reached send EOT_FLAG wait for response BOARD_ACK_STATUS check ret_code TRANSMIT_SUCCESSFUL send PC_ACK A C programming language example of the transmit procedure can be found in the JT Fax Toolkit found on the Online with Hayes BBS in the file JT_TX.C. The JT Fax 14400B Dual can have a manual dial if required. The host is required to dial the telephone number and place an "M" in the first byte of the automatic dial string. The "M" tells the JT Fax not to dial a telephone number. The JT Fax continues with the standard call progress. The manual handshake is identical to the automatic handshake. ***************************************************************************** Receiving The receive procedure for JT Fax 14400B Dual requires the host to monitor the Fax for an indication of a call. The host sets the number of rings to allow before answering in the RING_COUNT field of the API block. Answering the call and T.30 handshakes are automatic. Once the RING_COUNT is matched, the host receives a RECVINIT in the COMMAND field. The RECVINIT is the notification that an incoming call is being answered. After the receiver initializes, the Fax issues a LOAD_DATA_COMMAND. The host should retrieve the data and respond with a PC_ACK. The same handshake continues until the last byte of data for the page or a transmission. To end transmission, the Fax issues an EOT command to the host. The EOT command concludes the handshake for the receive. The following is a PDL example demonstrating a fax receive: send SYNC_COMMAND ( only after power up ) wait for response RECVINIT send PC_ACK wait for response LOAD_DATA_COMMAND retrieve data from DATA_AREA send PC_ACK continue procedural handshake until response EOT_FLAG retrieve data from DATA_AREA send PC_ACK wait for response BOARD_ACK_STATUS check RET_CODE SUCCESSFUL_RECEIVE send PC_ACK A C programming language example of the receive procedure can be found in the JT Fax Toolkit found on the Online with Hayes BBS under the file JT_RX.C. The manual receive allows the host to determine when and if the call will be answered. Rings are detected by an outside source or by the extended status code "RING". When the required number of rings is reached, the host issues the MANUAL_RECEIVE_COMMAND. Note: To disable automatic detection, it is required to set RING_COUNT to 0FH. The remaining receive handshake procedure is identical to the automatic answer mode. ========================================================================== Chapter 3 JT Fax Toolbox This section establishes the concepts, constructs, and structures necessary to develop API software. The items in capital letters are the specific functions whose corresponding command values are found in the JT Fax 14400B command set in Chapter 5. The JT Fax 14400B Dual uses two contiguous memory blocks, each of which is 2K bytes long. The API Blocks, functions, return codes and status codes are discussed in separate sections of this Guide. In those Chapters, individual items are in alphabetical order for convenience. In the following sections, the items are grouped by function to clarify what functions are available. ************************************************************************** API Block - Shared Memory The API entry point for the JT Fax 14400B is the user selectable shared memory window. For backward compatibility, most of the elements of this structure are identical to the JT Fax 9600B. The only changes implemented to this structure are related to the new features of the JT Fax 14400B Dual. The changes are in the field previously defined as RESERVED and in one field not used in 9600B (RESET_PC). The new fields are STATUS_CODE, RCV_FILE_TYPE and RCV_LINES. The following chart describes the available fields: Offset Length Name Usage/Description ----------------------------------------------------------------------- 0000H-0005H ID Location of board address 0005H-0001H COMMAND Commands and Status 0006H-0001H RING_COUNT Ring to answer on 0007H-0001H CALL_MODE Transmit / Receive 0008H-0001H FILE_TYPE ASCII, PCX, JT Fax 0009H-0001H XMIT_FONT Resolution, Font number 000AH-0001H MIN_PAGE Force 11 inch page flag 000BH-003DH BUFFER_AREA Phone numbers & headers 0048H-0002H SECONDS Length of connection 004AH-0001H SPEAKER On, off, on till connect 004BH-0001H RET_CODE Completion code 004CH-0002H PAGES Number of pages sent 004EH-0002H DATA_LEN Length of valid data 0050H-0001H BAUD_RATE 2400, 4800, 7200, 9600, 12000, 14400 baud 0051H-0001H RESET_BOARD Reset the board 0052H-0001H STATUS_CODE Extended status 0053H-0001H LINE_COUNT Number of lines transmitted 0054H-0001H RCV_FILE_TYPE Receive file type 0055H-0002H RCV_LINE Lines per page received 0057H-0001H RESERVED Not used at this time 0058H-07A8H DATA_AREA Used for file data Note: H indicates hexadecimal code. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 9600 Compatibility For backward compatibility, the API set published with the JT Fax 9600B has been fully implemented. These functions use the Command field and are provided here for reference. Status Description ------------------------------------------------------------------ EOTFLAG End of transmission EOP End of page INIT Initialize the board LOAD_DATA_COMMAND Begin transmit of Fax LOAD_FONT_COMMAND Load soft font RECVINIT Begin reception of Fax XMIT_COMMAND No transmission in progress The JT Fax 9600B also included some status and PC handshake codes in the Command field. These are fully implemented for backward compatibility. The codes are provided here for reference. Command Description ------------------------------------------------------------------------------ BAD_RAM RAM test failed BAD_ROM ROM test failed BOARD_ACK_STATUS Board returns when function complete BOARD_SYNC_COMMAND Transition from initialization to command ERROR An error has occurred GOOD_INIT Board passed self test IDLE_STATUS No transmission in progress PC_ACK PC returns when function is complete +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 14400B Facsimile API The JT Fax 14400B API set is an enhanced version of the 9600B API set. All of the 9600B functions are supported. The following chart lists the facsimile API commands supported: Command Description ------------------------------------------------------------------- EOTFLAG End of transmission EOP_FLAG End of page BOARD_SYNC_COMMAND Initializes the board LOAD_DATA_COMMAND Begin transmit of Fax LOAD_FONT_COMMAND Load soft font RECVINIT Begin reception of Fax XMIT_COMMAND No transmission in progress +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JT Fax 14400B Configuration API The JT Fax 14400B Dual Configuration functions were not available in the JT Fax 9600B command set. These configuration functions allow the host to customize the operation of the JT Fax 14400B Dual board. The following chart lists the configuration commands: Command Description ---------------------------------------------------------------------- BUSY_COMMAND Look for busy DTMF_OFF_TIME_COMMAND DTMF off time DTMF_ON_TIME_COMMAND DTMF on time ENHANCED_MODE_OFF_COMMANDDisable 14400B modes ENHANCED_MODE_ON_COMMAND Enable all 14400B modes EXTEND_STATUS_OFF_COMMAND Disable extended status EXTEND_STATUS_ON_COMMAND Enable extended status FAX_144_MODE_OFF_COMMAND Disable receive 14400 kbps FAX_144_MODE_ON_COMMAND Enable receive 14400 kbps FAX_MODE_COMMAND Enable JT Fax Mode (testing) MODEM_MODE_COMMAND Disable Fax and enable Modem NO_BUSY_COMMAND Do not look for busy PULSE_INTER_COMMAND Interdigit time REC_PCX_OFF_COMMAND Disable receive PCX format REC_PCX_ON_COMMAND Enable receive PCX format SET_CARRIER_COMMAND Time to wait for carrier STATUS_COMMAND Enable the 14400B status USER_CSI_COMMAND Initializes CSI USER_TSI_COMMAND Initializes TSI +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Voice Commands The Voice mode allows the recording and playback of non-compressed voice messages. During Phase A of a call, the Voice mode is entered after a user definable period of silence. (See Appendix D for a detailed description of JT Fax fax phases). After a period of silence, the user is notified of the "silent period" (SILENCE_DETECTED status) and is provided with a number of options. In addition, DTMF detect is automatically enabled. Command Description ------------------------------------------------------------------------------- CLEAR_VOICE_COMMAND Disables voice mode GAIN_DOWN_COMMAND Decrements gain increment by 1 dB (See SET_GAIN_COMMAND) GAIN_UP_COMMAND Increments the gain increment by 1 dB (See SET_GAIN_COMMAND) PLAY_END_COMMAND End voice playback PLAY_START_COMMAND Start voice play back RECORD_START_COMMAND Start recording voice RECORD_STOP_COMMAND Stop recording voice RETURN_TO_COMMAND Return to command state from voice mode RETURN_TO_DATA_COMMAND Return to Fax state from voice mode SET_ACT_TIMER_COMMAND Sets the time to wait for CNG tone SET_GAIN_COMMAND Sets the gain increment SET_SLEW_RATE_COMMAND Sets the "fall off rate" for voice signal SET_VOICE_MODE_COMMAND Enables voice mode and CNG detect TX_DTMF_COMMAND Transmit DTMF tones +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Utility Functions Some additional functions were added to aid in testing and debugging. The utility functions provide some of the low-level commands (primitives) used by the JT Fax 14400B to operate the hardware components. The JT Fax 14400B must be in FAX_MODE before any of the utility commands can be used. Caution: Some of these commands change the configuration of the Data Pump. If a change occurs to the data pump configuration, then a hardware reset will restore the values. Command Description ------------------------------------------------------------------ CED_OFF_COMMAND Turn off CED tone CED_ON_COMMAND Turn on CED tone CNG_OFF_COMMAND Turn off CNG tone CNG_ON_COMMAND Turn on CNG tone DTMF_DIAL_COMMAND Dial a DTMF number DTMF_OFF_COMMAND Turn off a DTMF tone DTMF_ON_COMMAND Turn on a DTMF tone OEM_CODE_COMMAND Execute OEM code onboard OEM_LOAD_COMMAND Load OEM code onboard OFF_HOOK_COMMAND Connects phone line ON_HOOK_COMMAND Disconnects phone line PULSE_BREAK_COMMAND Sets the Break Time PULSE_DIAL_COMMAND Pulse dial a number PULSE_MAKE_COMMAND Sets the Make Time RESET_DATA_PUMP_COMMAND Resets the data pump SPEAKER_OFF_COMMAND Turn off the speaker SPEAKER_ON_COMMAND Turn on the speaker ************************************************************************** Return Codes The return codes are enhanced for the JT Fax 14400B. In addition to the old JT Fax 9600B error codes, enhanced codes are available for more accurate problem determination during a FAX call. The standard JT Fax 9600B return codes include two status codes, and the remaining codes are error return codes. The return codes are listed in the following table. Error Code Description -------------------------------------------------------------------------------- BAD_DCS_RECEIVE Error in DCS data BAD_DIS_RECEIVE Bad DIS was received BAD_MCF_RESPONSE Messages not confirmed BAD_MPS_RECEIVE Error in MPS frame BAD_TRAINING Errors received in training BUSY Busy signal was detected CLIPPED ASCII to T4 line too long NO_CARRIER No connection was established NO_DATA_RECEIVED No data received within time limit NO_DIALTONE No dialtone reported in time limit NO_PC_ACK No PC acknowledge within time limit PAGE_ERROR Error in transmit page or receive page PHASE_D_ERROR Error occurred in Phase D SUCCESSFUL_RECEIVE Receive was successful SUCCESSFUL_TRANSMIT Transmit was successful The enhanced mode can be enabled/disabled by the following commands: ENHANCED_MODE_ON ENHANCED_MODE_OFF (default). The additional enhanced return codes are listed in the following table. Error Code Description ------------------------------------------------------------------------------ ABORT_ERROR Callee aborted call DCN_RECEIVED_ERROR Unexpected DCN received DIALING_ERROR DTMF digit in error DTMF_ERROR Tone was not DTME DTMF_TIMEOUT_ERROR DTMF tone was not available during timeout FAXIT_ERROR Error during fax transmission FONT_TOO_LARGE_ERROR Soft font too large HDLC_CRC_ERROR HDLC frame had bad CRC HDLC_FRAME_TIMEOUT_ERROR No HDLC frame in time limit HDLC_MIN_SIZE_ERROR Facsimile control frames had incorrect size LONG_LINE_ERROR Line too long in ASCII to Huffman MAX_FRAME_ERROR Facsimile control frames had incorrect size NEGOTIATING_TRAIN_DCN_ERROR DCN received during training NO_CNG_ERROR No CNG detected in received mode NO_RECEIVE_DCS_ERROR No DCS received PERCENTAGE_ERROR Errors in line exceeded percentage limits PHASE_A_ERROR Error occurred in Phase A PHASE_B_ERROR Error occurred in Phase B PHASE_C_ERROR Error occurred in Phase C PHASE_E_ERROR Error occurred in Phase E PHASE_E_TIMEOUT Time-out during handshake Phase E ROCK_ERROR Error in DSP chip VOICE_ERROR Error in voice procedures ************************************************************************** Status Codes In addition to the enhanced error codes, enhanced status messages are available. Since status codes do not require a response or action, the codes are reported in the STATUS_CODE. Status Description ---------------------------------------------------------- CONNECT Connection established NEGOTIATING_SPEED Negotiating connect speed PHASE_A_START Phase A started PHASE_B_START Phase B started PHASE_C_START Phase C started PHASE_D_START Phase D started RING Ring detected SUBSCRIBE_INFO CSI/TSI information available in buffer area ========================================================================== Chapter 4 Voice and DTMF Detect The voice and DTMF detect option of the JT Fax 14400B Dual has a Manual and an Automatic operating mode. Automatic requires a connection while Manual may be initiated in an off- line or on-line state. The Automatic DTMF/VOICE detection for JT Fax 14400B Dual detects DTMF/VOICE during the Phase A (answer mode) of a call. Enable the CNG_DETECT_ON_command for the automatic option. To disable the automatic mode, issue the CNG_DETECT_OFF_COMMAND. After a user-defined period of silence (no CNG tone), the JT Fax 14400B Dual enters DTMF/VOICE mode. During this stage, the user has the following options: detecting DTMF tones returning to data mode and continuing to answer Fax calls (i.e., send CED) executing voice commands returning to command state. The Manual mode only requires setting the options for DTMF/VOICE and the specific command to be issued. Manual mode is independent of connection status. ************************************************************************** DTMF Detect Automatic DTMF detection is accomplished when the JT Fax 14400B Dual is in the DTMF/VOICE on-line detect mode. The JT Fax 14400B Dual automatically searches for DTMF tones. If a DTMF tone is found, the tone value is placed in the first byte of the Data_Area and a DTMF_DETECT_STATUS is written into the API command block at location COMMAND. The JT Fax 14400B Dual waits until the Host retrieves the DTMF value and issues a PC_ACK command before searching for more DTMF tones. The manual option provides the capability of entering DTMF detect mode from command state. This is independent of connect status. The JT Fax 14400B Dual operates similarly to the automatic DTMF detect. The difference is that the Host must cancel the DTMF detect search with an EOD command. The JT Fax 14400B Dual issues a BOARD_ACK_COMMAND in response. The option for CNG_DETECT does not have to be enabled for the manual DTMF detect. However, DTMF detect option does need to be enabled for manual and automatic operation. The DTMF tones detected and reported to the Host are: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *, #, A, B, C, D. Commands available for Automatic operation are: CNG_DETECT_ON_COMMAND DTMF_DIAL_COMMAND DTMF_DETECT_STATUS RETURN_TO_DATA_COMMAND RETURN_TO_COMMAND Commands available for manual operation include: DTMF_DETECT_ON_COMMAND EOD DTMF_DETECT_STATUS The following is an example of automatic DTMF detect: (Connecting Call) . . . Wait for Response SILENCE_DETECT_STATUS Check Status VOICE_MODE . . . Wait for Response DTMF_DETECT_STATUS Retrieve Byte Code from Data_Area Send PC_ACK . . . (Continuing in DTMF/Voice Mode) The following is an example of manual DTMF detect: Send GET_DTMF_COMMAND Wait for Response BOARD_ACK_STATUS Wait for Response DTMF_DETECT_STATUS Retrieve Byte Data from Data_Area Send PC_ACK . . . (When Finished) Send EOD_FLAG Wait for Response BOARD_ACK_COMMAND Send PC_ACK ************************************************************************** Voice Mode Voice mode can be entered when you are connected or disconnected to the phone line. When connected, voice recording is provided from the telephone line to either Fax A or Fax B. In the disconnected mode, input is provided by a microphone on Fax A only. In automatic voice mode, DTMF and voice are enabled. During Phase A of the call, the Voice mode is entered after a user definable period of silence. After the period of silence, the Host is notified of the "silent period" (SILENCE_DETECTED status) and starts to execute options similar in functionality to the Class 2 voice commands. The options in Automatic mode are: Command Description ---------------------------------------------------------------------------------- CNG_DETECT_ON_COMMAND Enables voice mode and CNG detect CNG_DETECT_OFF_COMMAND (default) SET_ACTIVITY_TIMER Sets the time to wait for CNG tone GAIN_UP Increases the gain increment by 1 dB GAIN_DOWN Decrements gain increment by 1 dB SET_GAIN Sets the gain increment SET_SLEW_RATE Sets the "fall-off rate" for voice signal RETURN_TO_COMMAND Returns to command state from voice mode RECORD_START Starts recording voice RECORD_STOP Stops recording voice PLAY_START Starts voice play back PLAY_END Ends voice playback DIAL_DTMF_COMMAND Transmits DTMF tones Manual voice mode requires the host to issue the SETUP_VOICE_COMMAND from command state. Once the command is received by the FAX, the JT Fax 14400B Dual enters the VOICE/DTMF mode and all commands available for Automatic mode are applicable except the RETURN_TO_DATA_COMMAND. During the actual playing and recording of a message, the DTMF detection is not available. This is due to the half-duplex nature of the 144EFX chip and different modes required for DTMF DETECT and VOICE mode. However, after the message is sent DTMF detection may occur. Voice data format during record and playback is in a raw binary 8-bit resolution format. The following PDL example is for automatic voice playback: (Initiate Call) . . . Wait for Response SILENCE_DETECT_STATUS Send PC_ACK Write Voice Data in Data_Area Send Play Start Wait for Response LOAD_DATA_COMMAND . . . (Finish Data) SEND_EOV_FLAG Wait for Response BOARD_ACK_COMMAND Send PC_ACK . . . (Continue with Voice/DTMF loop) Voice playback is completed. The following example is for manual record off-line. Step 1: Attach the microphone to the Fax A microphone jack. Step 2: Start the voice recording process: Send REC_START_COMMAND Wait for Response BOARD_ACK_STATUS Wait for Response LOAD_DATA_COMMAND Retrieve voice data from Data_Area Send PC_ACK . . . Wait for Response EOVFLAG Send PC_ACK This completes the voice recording. To use Manual Voice Recording, use the previous procedure, but replace the REC_START_COMMAND with the MANUAL_REC_COMMAND. ========================================================================== Chapter 5 Command Reference This Chapter includes detailed descriptions of the JT Fax command set. The point of reference is from the HOST side for all commands. The command descriptions are in the following format: Characteristic Description COMMAND: Specific function or status mnemonic CODE: Hex code CATEGORY: Fax, Status, Configuration, Utility, Voice DIRECTION: Host to JT Fax or JT Fax to Host INPUT to JT: Location in API block. Direction: JT Fax OUTPUT from JT: Location in API block. Direction: Host DEFAULT: Default for status commands DESCRIPTION: Detailed description of command EXAMPLE: A flow language example RELATED FUNCTIONS: Any other functions that might be of use The commands are presented in alphabetical order. Note: A PC_ACK is required after a BOARD_ACK status unless otherwise specified by the specific command feature. ************************************************************************** BAD_RAM Characteristic Description COMMAND: BAD_RAM CODE: 0F1H CATEGORY: Fax - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: BAD_RAM is issued after the RAM test was performed. BAD_RAM is an indication of a faulty random access memory chip. It is not recommended that FAX operation proceed. Call Hayes Customer Service. EXAMPLE: BOARD_SYNC_COMMAND - Host BAD_RAM - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ***************************************************************************** BAD_ROM Characteristic Description COMMAND: BAD_ROM CODE: 0F2H CATEGORY: Fax - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: BAD_ROM is issued after the ROM test was performed. BAD_ROM is an indication of faulty read only memory chip. It is not recommended that FAX operation proceed. Call Hayes Customer Service. EXAMPLE: BOARD_SYNC_COMMAND - Host BAD_ROM - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ************************************************************************** Board_ACK_Status Characteristic Description COMMAND: Board_ACK_Status CODE: 02H CATEGORY: Status DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: This API is part of the handshake protocol with the Host. The JT Fax board returns a BOARD_ACK_STATUS acknowledging the receipt or completion of a command. Some commands have additional handshake sequences and are detailed under the specific command. EXAMPLE: REC_PCX_ON_COMMAND - Host BOARD_ACK_STATUS - JT Fax (continue if necessary) . . . RELATED FUNCTIONS: PC_ACK ************************************************************************** Board_Sync_Command Characteristic Description COMMAND: Board_Sync_Command CODE: 0FFH CATEGORY: FAX - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: GOOD_INIT IDLE DEFAULT: Not applicable DESCRIPTION: The BOARD_SYNC_COMMAND initiates command state for the Fax after a power up or HARDWARE_RESET_COMMAND. No commands are accepted by the Fax until this command is issued. After the command is issued, BOARD_STATUS is updated in the API block. A GOOD_INIT is issued when the Fax is ready for commands. If a GOOD_INIT is not received , then the Host may need to issue another HARDWARE_RESET_COMMAND. EXAMPLE: BOARD_SYNC_COMMAND - Host GOOD_INIT - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: GOOD_INIT, HARDWARE_RESET_COMMAND ************************************************************************** Busy_Command Characteristic Description COMMAND: Busy_Command CODE: 02FH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Detect Busy DESCRIPTION: The BUSY_COMMAND instructs the JT Fax to recognize a busy signal. EXAMPLE: IDLE - FAX BUSY_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_DIAL_COMMAND, DTMF_DIAL_COMMAND ************************************************************************** CED_Off_Command Characteristic Description COMMAND: CED_Off_Command CODE: 037H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CED_OFF_COMMAND terminates the output of an ITU-T T.4 specified 2100 Hz tone. EXAMPLE: CED_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CED_ON_COMMAND ***************************************************************************** CED_On_Command Characteristic Description COMMAND: CED_On_Command CODE: 036H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CED_ON_COMMAND outputs an ITU-T T.4 specified 2100 Hz tone. EXAMPLE: CED_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CED_OFF_COMMAND ************************************************************************** CNG_Detect_Off_Command Characteristic Description COMMAND: CNG_Detect_Off_Command CODE: 061H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Off DESCRIPTION: The CNG_DETECT_OFF_COMMAND must be issued from command state. The command disables the voice and DTMF modes when answering a call. After answering a call, the Fax will not determine if the caller is a voice call or Fax call by detecting a CNG tone. The answer back tone is transmitted. EXAMPLE: IDLE - FAX CNG_DETECT_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR ************************************************************************** CNG_Detect_On_Command Characteristic Description COMMAND: CNG_Detect_On_Command CODE: 060H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Off DESCRIPTION: The CNG_DETECT_ON_COMMAND must be issued from command state. The command enables the voice and DTMF modes when answering a call. After answering a call, the Fax will not determine if the caller is a voice call or Fax call by detecting a CNG tone. The answer back tone is transmitted. EXAMPLE: IDLE - FAX CNG_DETECT_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR ************************************************************************** CNG_Off_Command Characteristic Description COMMAND: CNG_Off_Command CODE: 035H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CNG_OFF_COMMAND terminates the output of an ITU-T T.4 specified 1100 Hz tone. EXAMPLE: CNG_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CNG_OFF_COMMAND ************************************************************************** CNG_On_Command Characteristic Description COMMAND: CNG_On_Command CODE: 034H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The CNG_ON_COMMAND outputs an ITU-T T.4 specified 1100 Hz tone. EXAMPLE: CNG_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: CNG_OFF_COMMAND ************************************************************************** DTMF_Detect_Off_Command Characteristic Description COMMAND: DTMF_Detect_Off_Command CODE: 074H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_OFF_COMMAND disables the Fax capability to detect DTMF tones while in the Voice/DTMF mode. EXAMPLE: IDLE - FAX DTMF_DETECT_OFF_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** DTMF_Detect_On_Command Characteristic Description COMMAND: DTMF_Detect_On_Command CODE: 073H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_ON_COMMAND enables the Fax capability to detect DTMF tones while in the Voice/DTMF mode. EXAMPLE: IDLE - FAX DTMF_DETECT_ON_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** DTMF_Detect_Status Characteristic Description COMMAND: DTMF_Detect_Status CODE: 070H CATEGORY: Voice , Status DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: DTMF digit in DATA_AREA DEFAULT: Not applicable DESCRIPTION: The DTMF_DETECT_STATUS informs the Host that a DTMF tone was detected while in VOICE/DTMF mode. The DTMF_DETECT_STATUS command is only issued after a DTMF_DETECT_ON_COMMAND. EXAMPLE: DTMF_DETECT_ON_COMMAND - Host . . . SILENCE_DETECTED_STATUS - FAX PC_ACK - Host ...load DTMF byte in DATA_AREA - FAX DTMF_DETECT_STATUS - FAX ...retrieve DTMF byte - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", DTMF_DETECT_ON_COMMAND, DTMF_DETECT_OFF_COMMAND ************************************************************************** DTMF_Dial_Command Characteristic Description COMMAND: DTMF_Dial_Command CODE: 02CH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: DTMF number at OFFSET 00H in buffer_area Max. number length 60 characters OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_DIAL_COMMAND dials the digits stored at BUFFER_AREA. The dial command does not connect the phone line. The line must be connected with an OFF_HOOK_COMMAND. The dial string has several digits and modifiers. The DTMF digits supported are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, #, A, B, C, D. The dial modifiers are: JT Fax 9600B COMPATIBILITY First byte: 'P' - Pulse Dial 'T' - Tone Dial Second byte: 'W' - Wait for Dial Tone ' ' - Do not Wait If the first two bytes are 'MA' (Manual Dial) a number will not be dialed. JT Fax 14400B -------------------------- P - pulse dial T - tone dial W - wait for dialtone , - 2 second pause ! - flash hook I - no busy detect Note: This command may be used in Voice offline mode. EXAMPLE: IDLE - FAX (load string value in buffer_area) - Host DIAL_DTMF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_ON_TIME_COMMAND, DTMF_OFF_TIME_COMMAND ************************************************************************** DTMF_Off_Command Characteristic Description COMMAND: DTMF_Off_Command CODE: 029H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_OFF_COMMAND commands the JT Fax to terminate a DTMF tone. The command does not disconnect the line. EXAMPLE: IDLE - FAX DTMF_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: DTMF_ON_COMMAND, FAX_MODE_COMMAND, ON_HOOK_COMMAND ************************************************************************** DTMF_Off_Time_Command Characteristic Description COMMAND: DTMF_Off_Time_Command CODE: 02BH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: DTMF time at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 70 ms DESCRIPTION: DTMF_OFF_TIME_COMMAND configures the interdigit off time for automatic dialing of DTMF digits. The value specified is in milliseconds with a length of WORD. Max. value is 65 seconds. Standard minimum value is 65 ms. EXAMPLE: IDLE - FAX (load word value in buffer_area) - Host DTMF_OFF_TIME_COMMAND - - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_DIAL_COMMAND, DTMF_ON_TIME_COMMAND ************************************************************************** DTMF_On_Command Characteristic Description COMMAND: DTMF_On_Command CODE: 028H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: DTMF tone digit at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: DTMF_ON_COMMAND commands the JT Fax to send a DTMF digit specified by the value in BUFFER_AREA. The duration of the tone is controlled by the Host. The command does not connect the phone line. The tone is terminated by the DTMF_OFF_COMAMND. Note: JT Fax must be in Fax mode for Utility commands. EXAMPLE: IDLE - FAX (load digit in buffer area) - Host DTMF_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: DTMF_OFF_COMMAND, FAX_MODE_COMMAND, OFF_HOOK_COMMAND ************************************************************************** DTMF_On_Time_Command Characteristic Description COMMAND: DTMF_On_Time_Command CODE: 029H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: DTMF time at OFFSET 00H in buffer area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 70 ms DESCRIPTION: DTMF_ON_TIME_COMMAND sets the on-time for automatic dialing of DTMF digits. The value specified is in milliseconds with a length of WORD. Max. value is 65 seconds. The standard minimum value is 65 ms. EXAMPLE: IDLE - FAX (load word value in buffer_area)- Host DTMF_ON_TIME_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, DTMF_DIAL_COMMAND, DTMF_OFF_TIME_COMMAND ************************************************************************** Enhanced_Mode_Off_Command Characteristic Description COMMAND: Enhanced_Mode_Off_Command CODE: 053H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The ENHANCED_MODE_OFF_COMMAND allows the JT Fax 14400B to operate in 9600B compatible mode. All status messages, error codes and speeds provided by the 14400B are disabled. EXAMPLE: IDLE - FAX ENHANCED_MODE_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, FAX_144_MODE_OFF_COMMAND, ENHANCED_MODE_ON_COMMAND ************************************************************************** Enhanced_Mode_On_Command Characteristic Description COMMAND: Enhanced_Mode_On_Command CODE: 052H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The ENHANCED_MODE_ON_COMMAND allows the JT Fax 14400B to operate in enhanced mode. All status messages, error codes and speeds provided by the 14400B are enabled. EXAMPLE: IDLE - FAX ENHANCED_MODE_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, FAX_144_MODE_ON_COMMAND, ENHANCED_MODE_OFF_COMMAND ************************************************************************** EOD_Flag Characteristic Description COMMAND: EOD_Flag CODE: 076H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The EOD_FLAG terminates the DTMF search. Any other command can be issued after this command sequence is complete. EXAMPLE: IDLE - FAX GET_DTMF_COMMAND - Host BOARD_ACK_COMMAND - FAX ...byte in data_area - FAX DTMF_DETECT_STATUS - FAX ...retrieve byte from data_area - Host PC_ACK - Host ...continue looking for DTMF - FAX . . . EOD_FLAG - HOST BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF" ************************************************************************** EOPFLAG Characteristic Description COMMAND: EOPFLAG CODE: 08H CATEGORY: Fax DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: EOPFLAG signifies that an end of page is necessary. The Host may elect to use the LINE_COUNT field in the API block for setting an end of page. The Fax page is transmitted until the line count is reached ( MIN_PAGE = non zero) and an EOP is issued to the called device. If the FAX page was short and a standard page length is used, then the LINECOUNT field sets the page length (MIN_PAGE = 0). All pages are the length of LINECOUNT. When using the EOPFLAG a PC_ACK command is not necessary. EXAMPLE: LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . LOAD_DATA_COMMAND - FAX ...load data - Host EOPFLAG - Host LOAD_DATA_COMMAND - FAX . . . RELATED FUNCTIONS: LOAD_DATA_COMMAND, EOTFLAG ************************************************************************** EOTFLAG Characteristic Description COMMAND: EOTFLAG CODE: 0FH CATEGORY: Fax DIRECTION: JT Fax to Host Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: EOTFLAG signifies an end of data transfer. The Fax command can be issued from either the Host or JT Fax. The Host issues the command in the XMIT_MODE to end data transmission, or in downloadable fonts to end the font download. The JT Fax issues the command to end a Fax reception. EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host EOTFLAG - Host . . . IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, RECVINIT, LOADFONT_COMMAND, "Error Codes, EOV_FLAG ************************************************************************** EOV_FLAG Characteristic Description COMMAND: EOV_FLAG CODE: 066H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA LOAD_DATA_COMMAND DEFAULT: Not applicable DESCRIPTION: The EOV_FLAG notifies the Host/Fax that the last buffer of data is in the DATA_AREA. This command is issued after a PLAY_START_COMMAND sequence. The command is used for voice data only. EXAMPLE: REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX ...load data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX ...load data from DATA_AREA - Host REC_STOP_COMMAND - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, RECVINIT_COMMAND ************************************************************************** Error Characteristic Description COMMAND: Error CODE: 06H CATEGORY: Status DIRECTION: JT Fax to Host INPUT to JT: IDLE OUTPUT from JT: RET_CODE contains error code DEFAULT: Not applicable DESCRIPTION: ERROR signifies that an error has occurred. The type of error can be retrieved from the RET_CODE field. ERROR does require the host to reset the COMMAND_DATA field to IDLE when the error code is read. EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . ERROR - JT Fax BUSY(ret_code field) - JT Fax (check ret_code) - Host IDLE - Host RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, RECVINIT, Error Codes ************************************************************************** Extend_Status_Off_Command Characteristic Description COMMAND: Extend_Status_Off_Command CODE: 04FH CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The EXTEND_STATUS_OFF_COMMAND disables the extended status available to the Host with the JT Fax 14400B. The status codes do not appear in the STATUS field of the API block and the status command is not issued. EXAMPLE: IDLE - FAX EXTEND_STATUS_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, STATUS_COMMAND ************************************************************************** Extend_Status_On_Command Characteristic Description COMMAND: Extend_Status_On_Command CODE: 04EH CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The EXTEND_STATUS_ON command enables the extended status available to the Host with the JT Fax 14400B. The status codes appear in the STATUS field of the API block after the status command is issued. EXAMPLE: IDLE - FAX EXTEND_STATUS_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, STATUS_COMMAND ************************************************************************** FAX_144_Mode_Off_Command Characteristic Description COMMAND: FAX_144_Mode_Off_Command CODE: 051H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The FAX_144_MODE_OFF_COMMAND allows the JT Fax 14400B to be compatible with the JT Fax 9600B. This command is included due to the change in the speed indexes for 14,400 bps. EXAMPLE: IDLE - FAX FAX_144_MODE_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_OFF_COMMAND, FAX_144_MODE_ON_COMMAND, ENHANCED_MODE_OFF_COMMAND ************************************************************************** FAX_144_Mode_On_Command Characteristic Description COMMAND: FAX_144_Mode_On_Command CODE: 050H CATEGORY: Configuration - Compatibility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The FAX_144_MODE_ON_COMMAND allows the JT Fax 14400B to enable reception of Faxes at the 14,400 bps rate. This command is included due to the change in the speed indexes for 14,400 bps. An index value of 5 in the BAUD_RATE field indicates 14,400 bps and a 4 indicates 12,000 bps. This command only affects the speed. EXAMPLE: IDLE - FAX FAX_144_MODE_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: EXTEND_STATUS_ON_COMMAND, FAX_144_MODE_OFF_COMMAND, ENHANCED_MODE_ON_COMMAND ************************************************************************** FAX_Mode_Command Characteristic Description COMMAND: FAX_Mode_Command CODE: 026H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: MODEM MODE in Command State FAX MODE is automatic with Fax commands DESCRIPTION: The FAX_MODE_COMMAND is required for all Utility commands. The command also allows JT Fax to control the Telco line interface instead of requiring OEM daughter cards. PC Bus access is available in both Fax and Modem mode. If a daughter card is not attached, Modem mode will not be necessary for JT Fax. EXAMPLE: IDLE - FAX FAX_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX OFF_HOOK_COMMAND - Host RELATED FUNCTIONS: MODEM_MODE_COMMAND, "Utility Commands" ************************************************************************** Gain_Down_Command Characteristic Description COMMAND: Gain_Down_Command CODE: 068H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The GAIN_DOWN_COMMAND decrements the maximum gain of the voice record by 1 dB. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The value is retained between recordings. EXAMPLE: IDLE - FAX GAIN_DOWN_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Gain_Up_Command Characteristic Description COMMAND: Gain_Up_Command CODE: 067H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The GAIN_UP_COMMAND increments the maximum gain of the voice record by 1 dB. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The value is retained between recordings. EXAMPLE: IDLE - FAX GAIN_UP_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Get_DTMF_Command Characteristic Description COMMAND: Get_DTMF_Command CODE: 075H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Byte value in DATA_AREA DEFAULT: Not applicable DESCRIPTION: The GET_DTMF_COMMAND can also be used in command state. The command initiates DTMF mode and continually searches for DTMF tones. The EOD_FLAG terminates the DTMF search. Any other command can be issued after this command. The "on/off hook" is controlled by the Host. EXAMPLE: IDLE - FAX GET_DTMF_COMMAND - Host BOARD_ACK_STATUS - FAX ...byte in data_area - FAX DTMF_DETECT_STATUS - FAX ...retrieve byte from data_area - Host PC_ACK - Host ...continue looking for DTMF - FAX . . . EOD_FLAG - HOST BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", EOD_FLAG ************************************************************************** Good_Init Characteristic Description COMMAND: Good_Init CODE: 0F0H CATEGORY: FAX - Compatibility DIRECTION: JT Fax to Host INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The GOOD_INIT command is issued after a BOARD_SYNC_COMMAND is received following power up. It indicates that the FAX is ready for commands and the ROM/RAM test was good. EXAMPLE: BOARD_SYNC_COMMAND - Host GOOD_INIT - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: BOARD_SYNC_COMMAND, HARDWARE_RESET_COMMAND ************************************************************************** Hardware_Reset_Command Characteristic Description COMMAND: Hardware_Reset_Command CODE: 030H CATEGORY: Control DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The HARDWARE_RESET_COMMAND instructs JT Fax to initiate a "power on reset" function. The command is placed in the API block location, RESET_BOARD, at offset 51H. When RESET_BOARD is set to a HARDWARE_RESET_COMMAND, then the following happens: RAM and ROM test is executed data pump is reset, memory cleared all options set to default conditions. After six seconds, JT Fax starts waiting for a SYNC_COMMAND from the Host. A SYNC_COMMAND must be issued by the Host before any commands can be accepted. Note: This command should be used a last resort because it resets the JT Fax hardware and all user configurations to default. EXAMPLE: IDLE - FAX HARDWARE_RESET_COMMAND - Host (wait for 6 seconds) SYNC_COMMAND - Host IDLE_STATUS - FAX RELATED FUNCTIONS: SYNC_COMMAND, SOFTWARE_RESET_COMMAND ************************************************************************** Idle_Status Characteristic Description COMMAND: Idle_Status CODE: 01H CATEGORY: Status DIRECTION: JT Fax to Host Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: IDLE_STATUS is a compatibility status code/command. The command is issued to reset the Command field. The command is used by the Host in response to a BOARD_ACK_STATUS, or by JT Fax in response to a PC_ACK command or when in command state waiting for command. This command should only be used while in command state. EXAMPLE: IDLE - FAX (load time in buffer area - Host SET_CARRIER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - Host RELATED FUNCTIONS: BOARD_ACK_STATUS, PC_ACK ************************************************************************** Load_Data_Command Characteristic Description COMMAND: Load_Data_Command CODE: 03H CATEGORY: FAX DIRECTION: JT Fax to Host INPUT to JT: Data in DATA_AREA PC_ACK EOTFLAG EOPFLAG OUTPUT from JT: none LOAD_DATA_COMMAND EOTFLAG (receive mode only) DEFAULT: Not applicable DESCRIPTION: The LOAD_DATA_COMMAND is used when large amounts of data are needed. The direction of the load depends on the mode selected. If in TRANSMIT_MODE, the load data command is issued by JT Fax to indicate that data is ready to be received from the Host in the DATA_AREA. Once all the data has been placed in the DATA_AREA, the Host issues a PC_ACK. In the RECEIVE_MODE, the command is issued by JT Fax to alert the Host that data is available in the data area to be retrieved. After the Host retrieves the data, the host issues a PC_ACK. EXAMPLE: RECEIVE_MODE only RECVINIT - JT Fax (Host load ID in Buffer Area) PC_ACK - Host LOAD_DATA_COMMAND - JT Fax (Host retrieves data) PC_ACK - Host . . . EOT - JT Fax RELATED FUNCTIONS: EOT_FLAG, RECVINIT, PC_ACK ************************************************************************** Load_Font_Command Characteristic Description COMMAND: Load_Font_Command CODE: 04H CATEGORY: FAX DIRECTION: Host to JT Fax INPUT to JT: Font Data in DATA_AREA EOTFLAG OUTPUT from JT: BOARD_ACK FONT_TOO_LARGE DEFAULT: Not applicable DESCRIPTION: The LOAD_FONT_COMMAND is used to load the predefined JT Fax fonts or a user designed font (see Chapter 7). The font would be used only in transmit mode and file type ASCII_TYPE. Since the font data is larger than the DATA area several LOAD_DATA_COMMANDS would be issued by JT Fax. Issuing a HARD_RESET_COMMAND destroys a soft font, requiring a reload. Issuing a SOFT_RESET_COMMAND does not destroy a soft font. EXAMPLE: LOAD_FONT_COMMAND - Host LOAD_DATA_COMMAND - JT Fax ...load data in data_area - Host PC_ACK - Host LOAD_DATA_COMMAND - JT Fax . . . EOT - Host RELATED FUNCTIONS: PC_ACK, EOT, LOAD_DATA_COMMAND, "JT Fax Fonts" ************************************************************************** Manual_REC_Command Characteristic Description COMMAND: MANUAL_REC_COMMAND CODE: 10H CATEGORY: Fax DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: Manual receive enables the Host to force JT Fax to answer a call. The EXTEND_STATUS mode must be enabled before the STATUS command is received. A RING status appears in the STATUS_CODE field. After the status is retrieved, the Host returns the COMMAND field to IDLE. EXAMPLE: IDLE - FAX STATUS_COMMAND - FAX ...retrieve status code RING - Host MANUAL_REC_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . RELATED FUNCTIONS: "Status Codes", STATUS_COMMAND ************************************************************************** Modem_Mode_Command Characteristic Description COMMAND: Modem_Mode_Command CODE: 027H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: MODEM MODE in Command State FAX MODE is automatic with FAX commands DESCRIPTION: The MODEM_MODE_COMMAND is required to remove the previous FAX_MODE_COMMAND. The command also allows the OEM daughter Card to control the Telco line interface instead of JT Fax. PC Bus access is available in both Fax mode and Modem mode. If a Daughter card is not attached, Modem mode will not be necessary for JT Fax. EXAMPLE: IDLE - FAX FAX_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX OFF_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX MODEM_MODE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND ************************************************************************** No_Busy_Command Characteristic Description COMMAND: No_Busy_Command CODE: 02EH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Detect Busy DESCRIPTION: The NO_BUSY_COMMAND instructs the JT Fax to ignore the busy signal. EXAMPLE: IDLE - FAX NO_BUSY_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_DIAL_COMMAND, DTMF_DIAL_COMMAND ************************************************************************** OEM_Code_Command Characteristic Description COMMAND: OEM_Code_Command CODE: 079H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The OEM_CODE_COMMAND executes Host code that was downloaded to the Fax. The Fax utilizes a 16 MHz processor. The OEM_CODE_COMMAND executes custom assembly language code for the Host. The OEM code and data can be no larger than 28 KB. The OEM code has access to the command byte structure at 0:8000H. The code segment must be "0" and the code or data must start at 0:8800H. Additional 3K of RAM is available at 0:67D0H. (See Appendix F). EXAMPLE: IDLE - FAX OEM_CODE_COMMAND - Host ...OEM code executes - FAX ...OEM code terminates - FAX BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "OEM CODE ", OEM_LOAD_COMMAND ************************************************************************** OEM_Load_Command Characteristic Description COMMAND: OEM_Load_Command CODE: 07AH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: OEM code in DATA_AREA OUTPUT from JT: LOAD_DATA_COMMAND BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The OEM_LOAD_COMMAND loads the OEM code into the Soft Font RAM. The OEM code and data can be no larger than 28 KB. The OEM_LOAD_COMMAND sequence is similar to the LOADFONT_COMMAND sequence. If the OEM code is larger than the space available, a FONT_TOO_LARGE error is returned. The load aborts when the error is reported. The OEM code remains in RAM until power up or a HARDWARE_RESET_COMMAND or LOAD_FONT_COMMAND is issued. Note Soft fonts are not available when using this command. EXAMPLE: IDLE - FAX OEM_LOAD_COMMAND - Host LOAD_DATA_COMMAND - JT Fax ...Load OEM code into Data_area - Host PC_ACK - Host LOAD_DATA_COMMAND - JT Fax . . . EOT - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "OEM CODE ", OEM_CODE_COMMAND, LOAD_FONT_COMMAND ************************************************************************** Off_Hook_Command Characteristic Description COMMAND: Off_Hook_Command CODE: 025H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The OFF_HOOK_COMMAND forces the JT Fax to go "Off-Hook" (i.e., pickup the phone). The command is used when the Host wants to initiate a dialing sequence (DTMF or Pulse). The OFF_HOOK_COMMAND returns to Command state after completion. Note: JT Fax must be in FAX_MODE to use Utility commands. EXAMPLE: IDLE - FAX OFF_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND, ON_HOOK_COMMAND ************************************************************************** On_Hook_Command Characteristic Description COMMAND: On_Hook_Command CODE: 024H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The ON_HOOK_COMMAND forces the JT Fax to go "on- hook". The command is used after "OFF_HOOK_COMMAND" has been issued when the Host requires a return to "on-hook" condition (i.e., hang-up). The ON_HOOK_COMMAND returns to Command state after completion. Note: JT Fax must be in FAX_MODE to use Utility commands. EXAMPLE: IDLE - FAX ON_HOOK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: FAX_MODE_COMMAND, OFF_HOOK_COMMAND ************************************************************************** Online_Voice_Record_Off Characteristic Description COMMAND: Online_Voice_Record_Off CODE: 78H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Off DESCRIPTION: This API command turns the online voice record option off. This command can be issued after the voice message has been received to prevent premature termination of tone or voice greeting messages. EXAMPLE: IDLE - Host . . . ONLINE_VOICE_RECORD_ON - Host BOARD_ACK - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host . . . EOVFLAG - FAX ...Load data from Data Area - Host PC_ACK - Host IDLE - FAX ONLINE_VOICE_RECORD_OFF - Host BOARD_ACK - FAX RELATED FUNCTIONS: ONLINE_VOICE_RECORD_ON, EOVFLAG, RECORD_START_COMMAND ************************************************************************** Online_Voice_Record_On Characteristic Description COMMAND: Online_Voice_Record_On CODE: 77H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Off DESCRIPTION: This API provides the option to record voice messages while online. The message is terminated after the caller disconnects and dial tone is detected. Since tones in the range of 350-620 Hz cause termination, it is necessary to disable this option during all other recordings. EXAMPLE: IDLE - Host . . . SILENCE_DETECTED_STATUS - FAX . . . ONLINE_VOICE_RECORD_ON - Host BOARD_ACK - FAX PC_ACK - Host REC_START_COMMAND - Host . . . EOVFLAG - FAX ...Load data from Data Area - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: ONLINE_VOICE_RECORD_OFF, EOVFLAG, RECORD_START_COMMAND ************************************************************************** PC_ACK Characteristic Description COMMAND: PC_ACK CODE: 05H CATEGORY: STATUS handshake DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None, Idle DEFAULT: Not applicable DESCRIPTION: The PC_ACK command is used as acknowledgment between the PC software and the JT Fax 14400B. The response is appropriate when receiving a command from the JT Fax 14400 B Dual board. A PC_ACK does not require a response from the JT Fax 14400B Dual board. EXAMPLE: . . . GET_DTMF_COMMAND - Host BOARD_ACK_STATUS - JT Fax DTMF_DETECT_STATUS - JT Fax (retrieve DTMF code) PC_ACK - Host . . . RELATED FUNCTIONS: LOAD_DATA_COMMAND, RECVINIT, LOAD_FONT_COMMAND, BOARD_ACK_STATUS ************************************************************************** Play_End_Command Characteristic Description COMMAND: Play_End_Command CODE: 063H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The PLAY_END_COMMAND stops the playback of a voice file in voice mode. The current buffer is deleted and the voice transmission is halted. EXAMPLE: PLAY_START_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX PLAY_END_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", PLAY_START_COMMAND, EOV_FLAG ************************************************************************** Play_Start_Command Characteristic Description COMMAND: Play_Start_Command CODE: 062H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: Binary Voice data in DATA_AREA OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The PLAY_START_COMMAND initiates the playing of a recorded voice file. The command sequence is similar to a XMIT_COMMAND. An EOV_FLAG is issued when the last voice data is entered in DATA_AREA. The timing for loading data is the same as XMIT_COMMAND for JT Fax data formats. EXAMPLE: PLAY_START_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data in DATA_AREA - Host ...set number bytes - Host EOV_FLAG - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, ERRFLAG, NO_CNG_DETECT_ERROR, PLAY_STOP_COMMAND, EOV_FLAG ************************************************************************** Pulse_Break_Command Characteristic Description COMMAND: Pulse_Break_Command CODE: 03AH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area in milliseconds OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 60 milliseconds DESCRIPTION: The PULSE_BREAK_COMMAND requires the Host to set the value of the "BREAK" portion of the make/break ratio for pulse dialing. The value is written into buffer_area before the command is issued. EXAMPLE: IDLE - FAX PULSE_BREAK_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: PULSE_MAKE_COMMAND, PULSE_DIAL_COMMAND ************************************************************************** Pulse_Dial_Command Characteristic Description COMMAND: Pulse_Dial_Command CODE: 02DH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: Pulse number at OFFSET 00H in buffer_area Max. number length 60 characters. OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: PULSE_DIAL_COMMAND dials the phone number at BUFFER_AREA. The command does not connect the phone line. The line must be connected with an OFF_HOOK_COMMAND. The dial string has several digits and modifiers. The DTMF digits supported are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. The dial modifiers are: JT Fax 9600B COMPATIBILITY ------------------------------- First byte: 'P' - Pulse Dial 'T' - Tone Dial Second byte: 'W' - Wait for Dial Tone ' ' - Do not Wait If the first two bytes are 'MA' (Manual Dial) a number will not be dialed. JT Fax 14400B --------------------------- P - pulse dial T - tone dial W - wait for dialtone , - 2 second pause ! - flash hook I - no busy detect Note: JT Fax must be in Fax mode for Utility commands. EXAMPLE: IDLE - FAX (load string value in buffer_area) - Host PULSE_DIAL_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - Fax RELATED FUNCTIONS: XMIT_COMMAND, PULSE_INTER_COMMAND ************************************************************************** Pulse_Inter_Command Characteristic Description COMMAND: Pulse_Inter_Command CODE: 032H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Time in milliseconds, WORD value in buffer_area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 600 milliseconds DESCRIPTION: The PULSE_INTER_COMMAND sets the interdigit time of the pulse dial. The units of the command are in milliseconds. EXAMPLE: IDLE - FAX (value in buffer_area) - Host PULSE_INTER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE_STATUS - FAX RELATED FUNCTIONS: PULSE_BREAK_COMMAND, PULSE_MAKE_COMMAND ************************************************************************** Pulse_Make_Command Characteristic Description COMMAND: Pulse_Make_Command CODE: 03BH CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area in milliseconds OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 40 milliseconds DESCRIPTION: The PULSE_MAKE_COMMAND requires the Host to set the value of the "make" portion of the make/break ratio for pulse dialing. The value is written into buffer_area before the command is issued. EXAMPLE: IDLE - FAX PULSE_MAKE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: PULSE_MAKE_COMMAND, PULSE_DIAL_COMMAND ***************************************************************************** RecvInit Characteristic Description COMMAND: RecvInit CODE: 10H CATEGORY: Fax DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: RECVINIT command is issued to the Host when JT Fax detects an incoming call. The call may be a voice call or a fax call. It is up to the Host to make this determination (see Chapter 4) and decide to initiate voice procedures, disconnect, or continue the call. The default is to continue the call. If the caller is voice and CNG_DETECT is not enabled, the CED is transmitted and the call disconnects when Carrier timer expires. CNG detect mode has several options (see Chapter 4). EXAMPLE: IDLE - FAX RECVINIT_COMMAND - FAX ...(load ID into Buffer Area) - FAX PC_ACK - Host LOAD_DATA_COMMAND - FAX ...retrieve data - Host PC_ACK - Host . . . EOTFLAG - JT Fax ...retrieve data - Host PC_ACK - Host IDLE - JT Fax RELATED FUNCTIONS: XMIT_COMMAND, LOAD_DATA_COMMAND, SET_VOICE_COMMAND, DTMF_DETECT_COMMAND, DTMF_DETECT, SILENCE_DETECTED, SET_ACTIVITY_TIMER, "Error Codes" ************************************************************************** Rec_PCX_Off_Command Characteristic Description COMMAND: Rec_PCX_Off_Command CODE: 023H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: PCX receive conversion disabled DESCRIPTION: REC_PCX_OFF_COMMAND configures JT Fax to convert the caller's T.4 encoded file to a JT_FAX_FORMAT. EXAMPLE: IDLE - FAX REC_PCX_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: RECVINIT, MANUAL_REC_COMMAND, "Data Formats" ************************************************************************** Rec_PCX_On_Command Characteristic Description COMMAND: Rec_PCX_On_Command CODE: 022H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: PCX receive conversion disabled DESCRIPTION: REC_PCX_ON_COMMAND configures JT Fax to convert the caller's T.4 encoded file to a PCX version 3 file. The PCX header is given to the Host in the first data load. EXAMPLE: IDLE - FAX REC_PCX_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: RECVINIT, MANUAL_REC_COMMAND ************************************************************************** Rec_Start_Command Characteristic Description COMMAND: Rec_Start_Command CODE: 064H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA Load_Data_Command DEFAULT: Not applicable DESCRIPTION: The REC_START_COMMAND instructs the fax to initiate a recording session. The command sequences are similar to the receive Fax data. Once the command is issued, the data pump is configured and voice data from the A/D converter is read immediately. The data sampling continues until a REC_STOP_COMMAND is issued. EXAMPLE: REC_START_STATUS - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...retrieve data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host . . . RELATED FUNCTIONS: "Voice and DTMF", REC_STOP_COMMAND, RECVINIT_COMMAND Note: This command can be used to record offline on Fax A with a microphone. Recording may be done while connected on-line with either Fax A or Fax B using the phone line as input. ************************************************************************** Rec_Stop_Command Characteristic Description COMMAND: Rec_Stop_Command CODE: 065H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: Recorded data in DATA_AREA Load_Data_Command EOV_FLAG DEFAULT: Off DESCRIPTION: The REC_STOP_COMMAND instructs the JT Fax to terminate a recording session. The recording stops and the data in the record buffers is transmitted to the Host. To end the transmission of data to the Host, the JT Fax issues an EOV_FLAG. EXAMPLE: REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host PC_ACK - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA - FAX ...load data from DATA_AREA - Host REC_STOP_COMMAND - Host ...load data in DATA_AREA - FAX ...set number bytes - FAX EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, RECVINIT_COMMAND Note: After recording messages, disconnect the microphone from Fax A. ************************************************************************** Reset_Data_Pump_Command Characteristic Description COMMAND: Reset_Data_Pump_Command CODE: 033H CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The RESET_DATA_PUMP command resets the Fax data pump. When resetting the data pump, the chip returns to its initial power on state. This command should only be used before the DIAL_DTMF_COMMANDS state. The command is used by JT Fax to set the data pump to a known state after each call or receive. EXAMPLE: RESET_DATA_PUMP_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: HARDWARE_RESET_COMMAND ************************************************************************** Return_to_Command Characteristic Description COMMAND: Return_to_Command CODE: 072H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The RETURN_TO_COMMAND terminates voice mode and returns to command state. The JT Fax returns to command state, and the data pump is reset. The phone line may be disconnected by the ON_HOOK_COMMAND if desired. EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host RETURN_TO_COMMAND - HOST BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND, RETURN_TO_DATA_COMMAND ************************************************************************** Return_to_Data_Command Characteristic Description COMMAND: Return_to_Data_Command CODE: 071H CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: Not applicable DESCRIPTION: The RETURN_TO_DATA_COMMAND terminates voice mode and returns to complete a fax call. The JT Fax is returned to fax data at the beginning of Phase A and transmits the CED to the caller. (See Chapter 6). EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host RETURN_TO_DATA_COMMAND - Host BOARD_ACK_STATUS - FAX ...send CED - FAX RELATED FUNCTIONS: "Voice and DTMF", CNG_DETECT_ON_COMMAND ************************************************************************** Setup_Voice_Command Characteristic Description COMMAND: Setup_Voice_Command CODE: 05FH CATEGORY: Voice DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SETUP_VOICE_COMMAND must be issued from command state. The command is used to enter voice mode for RECORDING or PLAYBACK and testing. Once in the VOICE mode, all voice commands can be issued and DTMF detection is enabled. See Chapter 6. EXAMPLE: IDLE - FAX SETUP_VOICE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: Voice and DTMF" ************************************************************************** Set_Act_Timer_Command Characteristic Description COMMAND: Set_Act_Timer_Command CODE: 06FH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in Buffer_Area OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: 3.5 seconds DESCRIPTION: The SET_ACT_TIMER_COMMAND sets the activity timer when CNG_DETECT_ON_COMMAND has been issued. The timer value is specified in milliseconds and has a range from 0-65000. The activity timer starts after the Fax picks up the phone line. If a CNG tone is detected (Fax caller), the timer is reset, a CED is transmitted (Fax callee) and the Fax call continues. However, if silence is detected (no CNG tone) for the duration of the activity timer, the SILENCE_DETECT_STATUS is issued. The JT Fax automatically enters VOICE/DTMF mode. Note: Cycle time for a CNG_TONE is 3 seconds off, 0.5 seconds on. EXAMPLE: SILENCE_DETECTED_STATUS - FAX PC_ACK - Host IDLE - Host . . . PLAY_START_COMMAND - Host . . . RELATED FUNCTIONS: "Voice and DTMF", PLAY_START_COMMAND, DTMF_DIAL_COMMAND, DTMF_DETECT_ON_COMMAND ************************************************************************** Set_Carrier_Command Characteristic Description COMMAND: Set_Carrier_Command CODE: 020H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Wait for carrier time buffer area (word value) - in milliseconds max. (65 seconds) OUTPUT from JT: BOARD_ACK DEFAULT: 60 sec DESCRIPTION: The SET_CARRIER_COMMAND sets the time to wait for the caller and called station to complete Phase A. The NO_CARRIER timer starts after the dial and terminates at the beginning of Phase B. If the timer expires, the call is disconnected and an ERROR status returned to the host. Carrier may also be set placing a work value into Buffer Area [0] before a Sync Command is issued. Units are in milliseconds. EXAMPLE: (load time in buffer area) - Host SET_CARRIER_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: ERROR, "Error Codes", "Status Codes" ************************************************************************** Set_Gain_Command Characteristic Description COMMAND: Set_Gain_Command CODE: 069H CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: Word value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 43.8 dB DESCRIPTION: The SET_GAIN_COMMAND sets the maximum gain of the voice recording. The maximum gain should only be changed during recording to achieve a better quality of voice recording. The maximum gain is calculated by the following formula: MAX_GAIN = 655.36 [ 50 - Gain Limit (dB) ]. The value should be a 16-bit, positive, twos compliment value. The value is retained between recordings. EXAMPLE: IDLE - FAX ...load Gain Limit WORD in buffer_area - Host SET_GAIN_COMMAND - Host BOARD_ACK_COMMAND - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_COMMAND - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_Sample_Rate_Command Characteristic Description COMMAND: Set_Sample_Rate_Command CODE: 06AH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: BYTE value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 9600 Hz DESCRIPTION: The SET_SAMPLE_RATE_COMMAND sets the sampling rate of the voice recording. The value placed into the Buffer_Area is an index to the provided sample rates. The following is an EXAMPLE of the available sample rates: --------------- 1 9600 Hz 2 8000 Hz 3 7200 Hz The value is retained between voice mode sessions. EXAMPLE: IDLE - FAX ...load BYTE in buffer_area - Host SET_SAMPLE_RATE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_Slew_Rate_Command Characteristic Description COMMAND: Set_Slew_Rate_Command CODE: 06BH CATEGORY: Voice - Configuration DIRECTION: Host to JT Fax INPUT to JT: WORD value in BUFFER_AREA OUTPUT from JT: BOARD_ACK_COMMAND DEFAULT: 0 DESCRIPTION: The SET_SLEW_RATE_COMMAND sets the slew rate of the voice recording. The value is placed into the Buffer_Area. The Slew rate value determines the fall off time of the voice wave form. The value can be adjusted by the following formula, SLEW_RATE = [19968/(Sample Rate x fall time in seconds)]. The value is a 16-bit, positive, twos compliment value. The value is retained between voice sessions. EXAMPLE: IDLE - FAX ...load BYTE in buffer_area - Host SET_SLEW_RATE_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND ************************************************************************** Set_User_CSI_Command Characteristic Description COMMAND: Set_User_CSI_Command CODE: 055H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Buffer_Area 20 byte CSI OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SET_USER_CSI_COMMAND provides flexibility in Fax identification. TSI/CSI Fax information for transmit and receive can be modified to contain a specialized message. The format previously available for 9600B allowed the CSI to be placed in the buffer area on transmit and receive. The format of header data in the BUFFER_AREA consisted of: 0-20 CSI 21-54 -other user information 55 - Page number followed by space (transmit only) 56 - 61 padded spaces. The CSI was always contained in the header of the transmitted page. In receive mode, the CSI was transmitted to the caller. Since the CSI appeared on the Fax page as a header, there was no way to send different CSI data to the caller/callee. This command allows two different messages to appear to the caller/callee. One message in the CSI and the other in the printed Fax header. The SET_USER_CSI mode can only be cleared with a HARD_RESET. EXAMPLE: IDLE - FAX SET_USER_CSI_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, "Buffer Area" ************************************************************************** Set_User_TSI_Command Characteristic Description COMMAND: Set_User_TSI_Command CODE: 054H CATEGORY: Configuration DIRECTION: Host to JT Fax INPUT to JT: Buffer_Area 20 byte TSI OUTPUT from JT: BOARD_ACK_STATUS DEFAULT: Not applicable DESCRIPTION: The SET_USER_TSI_COMMAND provides flexibility in fax identification. TSI/CSI fax information for transmit and receive can be modified to contain a specialized message. The format previously available for 9600B allowed the TSI to be placed in the buffer area on transmit and receive. The format of header data in the BUFFER_AREA consisted of: 0-20 TSI 21-54 -other user information 55 - Page number followed by space (transmit only) 56 - 61 padded spaces. The TSI was always contained in the header of the transmitted page. In receive mode, the TSI was transmitted to the caller. Since the TSI appeared on the Fax page as a header, there was no way to send different TSI data to the caller/callee. This command allows two different messages to appear to the caller/callee. One message in the TSI and the other in the printed Fax header. The SET_USER_TSI mode can only be cleared with a HARD_RESET. EXAMPLE: IDLE - FAX SET_USER_TSI_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: XMIT_COMMAND, "Buffer Area" ************************************************************************** Silence_Detected_Status Characteristic Description COMMAND: Silence_Detected_Status CODE: 06CH CATEGORY: Voice DIRECTION: JT Fax to Host INPUT to JT: PC_ACK OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The SILENCE_DETECTED_STATUS notifies the Host that a CNG tone was not detected within the user-defined time limit. The notification only occurs if a CNG_DETECT_ON_COMMAND has been previously issued. Once silence has been detected, the JT Fax enters into Voice mode. The Host has the following options 1. voice commands, 2. wait for DTMF detection, 3. return to data and continue call, and 4. return to command and terminate call. EXAMPLE: . . . SILENCE_DETECTED_STATUS - FAX PC_ACK - Host REC_START_COMMAND - Host BOARD_ACK_STATUS - FAX ...load data in DATA_AREA - FAX ...set number bytes - FAX LOAD_DATA_COMMAND - FAX . . . EOV_FLAG - FAX ...load data from DATA_AREA - Host PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: "Voice and DTMF", REC_START_COMMAND, DTMF_DIAL, DTMF_DETECT_ON_COMMAND ************************************************************************** Software_Reset_Command Characteristic Description COMMAND: Software_Reset_Command CODE: 031H CATEGORY: Control DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: None DEFAULT: Not applicable DESCRIPTION: The SOFTWARE_RESET_COMMAND instructs JT Fax to initiate a soft reset function. The command is placed in the API block location, RESET_BOARD, at offset 51H. When RESET_BOARD is set to a SOFTWARE_RESET_COMMAND, the hardware is reset and all buffers are cleared (soft fonts are not cleared). After the default carrier time is reset to the value contained in BUFFER_AREA, JT Fax is in command state. EXAMPLE: SOFTWARE_RESET_COMMAND - Host (wait for 3 seconds) IDLE_STATUS - FAX RELATED FUNCTIONS: HARDWARE_RESET_COMMAND, SET_CARRIER_COMMAND ************************************************************************** Speaker_Off_Command Characteristic Description COMMAND: Speaker_Off_Command CODE: 03EH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The SPEAKER_OFF_COMMAND is used when the Host wants the speaker off for VOICE setup or when using the Utility commands. In normal JT Fax operation the speaker is controlled by the SPEAKER field of the API block. EXAMPLE: SPEAKER_OFF_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: SPEAKER_ON_COMMAND ************************************************************************** Speaker_On_Command Characteristic Description COMMAND: Speaker_On_Command CODE: 03DH CATEGORY: Utility DIRECTION: Host to JT Fax INPUT to JT: None OUTPUT from JT: BOARD_ACK DEFAULT: Not applicable DESCRIPTION: The SPEAKER_ON_COMMAND is used when the Host wants the speaker on for VOICE setup or when using the Utility commands. In normal JT Fax operation the speaker is controlled by the SPEAKER field of the API block. EXAMPLE: SPEAKER_ON_COMMAND - Host BOARD_ACK_STATUS - FAX PC_ACK - Host IDLE - FAX RELATED FUNCTIONS: SPEAKER_OFF_COMMAND ************************************************************************** Xmit_Command Characteristic Description COMMAND: Xmit_Command CODE: 01H CATEGORY: FAX Transmit DIRECTION: Host to JT Fax INPUT to JT: Phone number in buffer area (if desired) Header in buffer area FAX data in swap buffer EOPFLAG EOTFLAG OUTPUT from JT: LOAD_DATA_COMMAND BOARD_ACK SUCCESSFUL_TRANSMIT BUSY RING status messages DEFAULT: Not applicable DESCRIPTION: This API is the FAX transmit command. The transmit command operates the speaker, dials the phone number, and transfers the fax. After the dial is completed, the Host is prompted for the header information. This header is placed on the top page of the fax and a portion is used for the TSI. Once the header is received, the host is prompted for the data with the LOAD_DATA_COMMAND. The data is passed in the DATA_AREA location. The Host must issue a PC_ACK when all the data is loaded into DATA_AREA. Further LOAD_DATA_COMMANDs are issued until the fax transfer is complete. The Host terminates the transfer with an EOT command. The time constraint placed on the Host for data transfer is based on the format of the data. In the JT Fax format, approximately 10k of data can be buffered on the FAX. So, timing during transmission is only critical during the first initial stages of buffering. The initial stages require data to be loaded as fast as possible. If the data requires translation, the timing is more critical. The Host buffers 2 initial loads. The worst case scenario for ASCII and PCX is approximately 5 seconds between data loads at 14400 bps before data is lost. The data placed in DATA_AREA may be in one of three formats. These are: ASCII_FORMAT 00H PCX_3_FORMAT 01H JT_FAX_FORMAT 63H The formats are discussed in detail in Chapter 7. Characteristic Description EXAMPLE: IDLE - FAX (load phone number in buffer area) - Host (load baud rate if desired) - Host XMIT_COMMAND - Host BOARD_ACK_STATUS - FAX ...load header - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data and set format - Host ...set number bytes - Host PC_ACK - Host LOAD_DATA_COMMAND - FAX ...load data - Host PC_ACK - Host . . . EOT - Host TRANSMIT - FAX BOARD_ACK - FAX PC_ACK - Host IDLE - Host When the Host is transmitting multiple pages and wants to control the page breaks, an EOP is issued instead of PC_ACK. To control the length of the page the min_page parameter should be used. RELATED FUNCTIONS: IDLE, EOT, PC_ACK, BOARD_ACK, SET_CARRIER_COMMAND, FAX_MODE_COMMAND, BUSY_COMMAND, ENHANCED_MODE_ON_COMMAND, dial modifiers ========================================================================== Chapter 6 Shared Memory Interface Description All functions, status codes, return codes, and data pass through the JT Fax shared memory interface. The interface address is selectable in 4k increments and is located between memory address 8000H to 0FFFFH (see the Hayes JT Fax 14400B Dual Installation Guide). If the C programming language is used for the Host program, then the compiler should pack the API structure on byte boundaries. This is accomplished in Microsoft C by using the following statement: #pragma pack (1) ************************************************************************** Shared Memory Interface Structure The shared memory interface structure is organized as follows: Note: This map is used with Fax A at offset 0 and Fax B at offset 800H. Offset Length Name Usage/Description -------------------------------------------------------------------------------------- 0000H-0005H ID Location of board address 0005H-0001H COMMAND Commands and Status 0006H-0001H RING_COUNT Ring to answer on 0007H-0001H CALL_MODE Transmit/Receive 0008H-0001H FILE_TYPE ASCII, PCX, JT Fax 0009H-0001H XMIT_FONT Resolution, Font number 000AH-0001H MIN_PAGE Force 11 inch page flag 000BH-003DH BUFFER_AREA Phone numbers & headers 0048H-0002H SECONDS Length of connection 004AH-0001H SPEAKER on, off, on till connect 004BH-0001H RET_CODE Completion code 004CH-0002H PAGES Number of pages sent 004EH-0002H DATA_LEN Length of valid data 0050H-0001H BAUD_RATE 2400, 4800, 7200, 9600, 12000, 14400 baud 0051H-0001H RESET_BOARD Reset the board 0052H-0001H STATUS_CODE Extended status 0053H-0001H LINE_COUNT Number of lines transmitted 0054H-0001H RCV_FILE_TYPE Receive file type 0055H-0002H RCV_LINE Lines per page received (ASCII) 0057H-0001H RESERVED Not used at this time 0058H-07A8H DATA_AREA Used for file data The following paragraphs describe the Shared Memory Interface fields: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ID Field where the product keyword is located. Set by Board. The ID field is used to locate the board at the start of a program. Memory can be searched from segment 8000H to F000H for the 'ASHER' keyword at each 2K boundary. In the JT Fax 14400B tool kit, FINDFAX.ASM file contains an assembler routine that locates the 'ASHER' string. This allows the Host program to locate the board in memory without knowing the exact memory location. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ COMMAND Field for command handshakes. Set by Host and JT Fax. The COMMAND byte is used to pass most commands to the board and some status bytes are returned through this byte. The status bytes are JT Fax 9600B compatible codes described in Chapter 3. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RING_COUNT Field for ring to answer count. Set by Host. Ring_count is a status byte used for the ring-to-answer-on count. The count allows the board to answer the call when a certain number of rings is reached. This byte should be set to 0FH if ring detection is not desired. For originate only applications and manual answers, a status command RING is provided in the first byte of buffer area. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CALL_MODE Field for answer or receive mode. Set by Host. Call_mode should be set prior to making or receiving a call. The call modes currently supported by the board are: Code Description --------------------------------- 00H Call to transmit a fax 02H Answer to receive a fax Note: This option is currently not supported. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ FILE_TYPE Field for specific file type. Set by Host. File_type should be set prior to a transmit. The file_type parameter determines the processing necessary for the JT Fax 14400B Dual to convert data to T.4 format. The field can have the following values: Code Description ------------------------- 00H ASCII_FORMAT 01H PCX _3_FORMAT 63H JT_Fax_FORMAT For additional information see File Formats in Chapter 7. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ XMIT_FONT Field for JT Fax font resolution. Set by Host. Xmit_font field is only used to transmit of data. The field should be set prior to all transmits, and is used to select the font for ASCII and high/low resolution for other types of transmits. If ASCII data is being sent in any font other than font0 (80/low) then that font must be loaded onto the board prior to the transmit. If any other form of data is being sent (i.e., PCX, JT Fax) then 00H and 01H should be used to indicate the resolution. Code Description ---------------------------------------------- 00H 80 character/line low resolution 01H 80 character/line high resolution 02H 132 character/line low resolution 03H 132 character/line high resolution For additional information see JT Fax Formats section Chapter 7. MIN_PAGE Field set for page minimum length. Set by Host. If min_page is zero when the transmit command is issued, all pages will be forced to be at least 11 inches long. If MIN_PAGE is set, the number of lines in linecount is used. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BUFFER_AREA Field for FAX ID, phone number. Set by Host, JT Fax and status messages. Buffer_area is an area used to pass the phone number to be dialed, the header line to put on the top of each page, fax ID and enhanced return codes. The default time-out-after-dial (binary) can also be loaded into buffer_area on start up or can be configured by using the SET_CARRIER_COMMAND function. For more information on buffer area see section Appendix E. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SECONDS Field for time of phases. Set by JT Fax. Seconds is a timer that resets to zero at the start of a call or answer and again after receiving the first carrier from the other end (to get a true connection time). The host has the option to reset the timer. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SPEAKER Field for speaker control. Set by Host. The Speaker byte controls operation of the speaker as follows: Code Description --------------------- 00H SPKR_ALWAYS_ON 01H SPKR_ON_TILL_CONNECT 02H SPKR_ALWAYS_OFF +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RET_CODE Field for errors and JT Fax 9600B status. Set by JT Fax. Ret_code is the error return code from a fax operation. For compatibility, the two 9600B status codes are returned in this field. The values are: Code Description ----------------------------- 0 Successful Transmit 1 No Dial Tone 2 No Carrier 3 Busy 7 Clipped The Handshaking/Compatibility return codes are: Code Description ------------------------------- 128 Bad DIS REC 129 Bad Training 130 Phase B Error 131 Bad MPS Response 132 Bad MCF Response 133 Bad DSC Response 134 Phase D Error 135 No PC Acknowledge 136 No Data Received 137 Page Error on Receive 138 Successful Receive Other Return Codes are described in Appendix B. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PAGES Field for number of pages. Set by JT Fax. Pages is a word that keeps a running count of the number of pages sent. It is updated during transmission and reception. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA_LEN Field for number of bytes in DATA_AREA Set by Host and JT Fax. Fax Data_len is a word that holds the number of data bytes valid in the data_area. It must be loaded prior to a load_data command. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BAUD_RATE Field for connect speed. Set by Host and JT Fax. Baud_rate is a byte that shows the connection speed. At the start of each transmission it defaults to 14400 BPS. For compatibility, the receive defaults to 9600 BPS. 14400 BPS receive can be obtained by issuing the FAX_144_MODE_ON API. The BAUD_RATE field has the following values: Code Description --------------------- 00H 2400 BPS 01H 4800 BPS 02H 7200 BPS 03H 9600 BPS 04H 12000 BPS 05H 14400 BPS The baud rate may be monitored for correct connect speed. Note: This rate may also be modified by the host for transmit speed. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RESET_BOARD Field for reset. Set by Host. This byte is used to reset the board after an error, or it can be done on exit to set the board to a known state. The API HARDWARE_RESET_COMMAND in this byte causes a full reset of the board, including memory testing and clearing and can take 5-6 seconds to complete. The API SOFTWARE_RESET_COMMAND causes a partial reset and does not clear memory. It disconnects the phone line and returns to command state. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ STATUS_CODE Field for enhanced status. Set by JT Fax. The status code field provides additional status for Fax transmission. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ LINE_COUNT Field for number lines. Set by Host. Line_count is a byte that gives the number of lines to put on the page before a page break. The function is only applicable when MIN_PAGE is set to 0 and during ASCII transmits. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RECV_FILE_TYPE Field used to indicate the type of file. Set by Host. The values are: Code Description ------------------------- 01H PCX_3_FORMAT 63H JT_FAX_FORMAT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RECV_LINE Field used to indicate the number of PCX lines recieved. Set by JT Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA_AREA Field for data transfer. Set by Host. This is the area used to buffer data out to the board. It is 1960 bytes long. ========================================================================== Chapter 7 File Formats This chapter describes the JT Fax file conversion formats. These formats include: PCX ASCII JT Fax. ***************************************************************************** PCX Conversion The PCX conversion supplied with JT Fax 14400B Dual is a receive "on-the- fly" conversion at all speeds supported. The data presented to the Host includes a PCX 3 header and data. All data is in black and white, 1-plane, 1 bit-per-pixel, xmax (horizontal axis) = 1727; color is not supported. Additional fields are provided for the PCX receive. These new fields are receive type (BYTE) at offset 55H and receive_lines at offset 56H (WORD). The following commands pertain to PCX conversion: REC_PCX_ON_COMMAND REC_PCX_OFF_COMMAND (default) The length of the PCX file (in lines) is reported in the new variable named RECV_LINES and is correct when the EOT is received from the fax. The RECV_LINES count should be placed in the PCX file by the Host. The offset into the PCX file for this count is 10 (zero relative) and is WORD value. The PCX_RECV_ON_COMMAND must be issued after setting Recvfile type to PCX. ************************************************************************** ASCII The following sections describe ASCII font management in JT Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Fonts The JT Fax 14400B Dual board gives the user the flexibility of 4 different fonts. These fonts are identified as font.0, font.1, font.2, and font.3. Font.0 is the default font and Fonts 0-3 are available as user defined fonts. The fonts are designed in two resolutions, low and high resolution. Low resolution is defined as an 18-bit by 16-row character cell. High resolution is defined by a 18-bit by 32-row character cell. All fonts are available in the JT FAX software toolkit under the files font.0, font.1, font.2, and font.3. Contact Hayes Customer Service, see Appendix I. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Mode There are two different modes for resolution, normal mode and compressed mode. In normal mode the character cell consists of 18 bits per character cell line. Normal mode is the default mode for the default font used by JT Fax. The JT Fax compressed mode consists of a character cell that is 13 bits-per-character line. Both modes support 80 and 132 columns. Below is a list of these fonts with their corresponding resolution. Font Name Resolution ----------------------------------------------------------- Low res faxfont.0 200x100 80 columns normal mode High res faxfont.1 200x200 132 columns normal mode Low res faxfont.2 200x100 80 columns compressed High res faxfont.3 200x200 132 columns compressed +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Font Modifications To modify these fonts, the programmer can execute the font generation program, fontcon.com. This program can be downloaded in the file faxfont.arc (contact Hayes Customer Service, see Appendix I). If the user wishes to create a custom font file without the use of the fontcon.com program, the fonts must be bit mapped as explained in the following paragraphs. The bit map is arranged in a "pixel line" format. The character must be converted into a bit-format byte aligned. Character tables start with the ASCII character for a space " " and end with an ASCII character for a "~". The character is assembled into a 4x16 byte matrix in low resolution and a 4x32 byte matrix for high resolution. All parts of the character cell must be represented. In lower case characters, the additional white space above the character must be included. For example, the lower case ASCII 'a' has several lines of white space above the 'a'. This must be included. Within each matrix cell, the font character is defined by 4 bytes per line by: low resolution = 18 bits < 22 bits unused > high resolution = 13 bits < 27 bits unused >. All unused bits are ignored and are set to a 0xff. For example, a '!' in low-resolution normal mode 4x16 80-column, with a bit set for white would be as follows: Row Bitmap Row Bitmap -------------------------------------------------------------------------------- 1 0xff, 0xff, 0xc0, 0xff (top space) 9 0xff, 0xf9, 0xc0, 0xff (char) 2 0xff, 0xf0, 0xc0, 0xff (char) 10 0xff, 0xff, 0xc0, 0xff (char) 3 0xff, 0xf0, 0xc0, 0xff (char) 11 0xff, 0xff, 0xc0, 0xff (char) 4 0xff, 0xf0, 0xc0, 0xff (char) 12 0xff, 0xf9, 0xc0, 0xff (char) 5 0xff, 0xf0, 0xc0, 0xff (char) 13 0xff, 0xff, 0xc0, 0xff (space) 6 0xff, 0xf0, 0xc0, 0xff (char) 14 0xff, 0xff, 0xc0, 0xff (space) 7 0xff, 0xf0, 0xc0, 0xff (char) 15 0xff, 0xff, 0xc0, 0xff (space) 8 0xff, 0xf9, 0xc0, 0xff (char) 16 0xff, 0xff, 0xc0, 0xff (space) The JT Fax font generation software offers the user the ability to create or modify the ASCII coded fonts used by the JT Fax products. The user will need to download FAXFONT.ARC and FONT.ARC from the HAYES BBS (see Appendix I). For development purposes, the programmer is advised to create a font sub- directory containing four sub-directories (one for each font), and copy the proper files into each sub-directory as follows: Directory Contents --------------------------------------------------------------- Font All directories below. Font 0 Low resolution normal 80 columns. Include FONT0.EXE, FONTSCRN, and FAXFONT.0. Font 1 High resolution normal 80 columns. Include FONT1.EXE, FONTSCRN, and FAXFONT.1. Font 2 Low resolution compressed 132 columns. Include FONT2.EXE, FONTSCRN, and FAXFONT.2. Font 3 High resolution compressed 132 columns. Include FONT3.EXE, FONTSCRN, and FAXFONT.3. To use the graphics editor, move to a font sub-directory, and type FONTX.EXE, where X is the font number to modify. The editor then appears, along with some instructions. EXAMPLE: C:/font/2 followed by: font2 This example illustrates the suggested sub-directory structure and the procedure for editing font2 (low resolution compressed). The FONTSCRN file is a graphic overlay for the font editor. When the "Which character to edit" prompt is displayed, you may enter a keyboard character. To enter a non-keyboard character, find its ASCII code, hold down the key and enter the ASCII code with the numeric keypad. To move about in the font field, use the cursor control keys. The instructions appearing on the screen guide you to edit a font. When the font is complete, enter to save it. The high resolution fonts allow editing the top and bottom half of each pixel in the font field. In the high resolution fonts, use T and B to paint or delete the Top or Bottom of a font element. As a font is modified, a FAXFONT.TMP file is created. FONTCON.COM is then converts the FAXFONT.TMP file into the format used by the JT FAX software. The syntax is: FONTCON FAXFONT.TMP FAXFONT.X The FAXFONT.X is the new file you created, and is now ready to be copied into your FAX directory for testing. EXAMPLE: c:\font\2> fontcon faxfont.tmp faxfont.2 The example converts the FAXFONT.TMP from sub-directory FONT2 and converts it to FAXFONT.2. Font generation may require several iterations of some character. This is normal, as fonts displayed on a CRT appear different than when received on a Fax machine. Note: Only one soft font can be downloaded. This is the font used by the Fax. Only one soft font at any given time can be downloaded and used. Soft Font cannot be used with the OEM_CODE command. ************************************************************************** JT Fax Format The JT Fax file format is based on a modified Huffman coding used in Group 3 facsimile preceded by an eight byte header. The Huffman coding schema is in Appendix A.) The header format is as follows: Offset Explanation --------------------------------------------------------------- 0 A zero byte 1 Either 0 or 40H. If the 40H bit is set, then the file is a high resolution (200x200) file. 2 reserved 3 reserved 4 reserved 5 reserved 6 reserved 7 reserved The Huffman data format is a data compression method based on run length encoding. One hundred and twenty-eight run lengths (64 white and 64 black), thirteen make-up codes, and an end-of-line (EOL) are defined by the ITU-T. These codes are available in Appendix A. The JT Fax only supports files of 1728 pixels per line, the only required format for a Group 3 fax machine. The EOL command is used to end every line in a fax-format file. It consists of 11 zero bits and a one bit. Additional zero bits, or fill bits, can be inserted prior to the EOL command. Although some JT Fax files use fill bits so that each line of fax data begins on a byte boundary, inclusion of fill bits is not necessary for any JT Fax family product. The JT Fax file is organized as follows: Eight byte header EOL Huffman compressed line EOL Huffman compressed line EOL . . . Huffman compressed line EOL Huffman compressed lines are generated using the tables in Appendix A. Huffman compression assumes that every line begins with a white run length, alternates to a black, back to white, up to an EOL. If a run length is greater than 63, then a make-up code is used. A make-up code is always followed by a run length of the same color, even if the length is zero. The Huffman codes are sent left-bit first (as seen in the table), but must be assembled so that the low-order bit in each byte is the first to send. The following example demonstrates this process: Assume the input line of data is: 30 white, 10 black, 130 white, 192 black, 1366 white From the table in Appendix A: 30 white = 00000011 10 black = 0000100 130 white = 128 white = 10010 (make up-code) + 2 white = 0111 192 black = 192 black = 010111(make-up code) + 0 black = 0000110111 1366 white = 1344 white = 011011010 (make-up code) + 22 white = 0000011 EOL = 000000000001 Put the bits in a stream: 00000011000010010010011101011100001101110110110100000011 000000000001 Break them out, eight bits at a time: 00000011-00001001-00100111-01011100-00110111-01101101- 00000011-00000000-0001 Reverse the bit-order: 11000000-10010000-11100100-00111010-11101100-10110110- 11000000-00000000-xxxx1000 The xxxx could be the first four bits from the next Huffman stream of data, or four additional 0s could be inserted on the other side of the 1, making the last byte 10000000. The final hex code for this line is: C0 90 E4 3A EC B6 C0 00 80 ========================================================================== Appendix A ITU-T T.4 Huffman Encoding This appendix defines the T.4 Huffman encoding used in JT Fax. Run Length White Code Black Code ------------------------------------------------ 0000 00110101 0000110111 0001 000111 010 0002 0111 11 0003 1000 10 0004 1011 011 0005 1100 0011 0006 1110 0010 0007 1111 00011 0008 10011 000101 0009 10100 000100 0010 00111 0000100 0011 01000 0000101 0012 001000 0000111 0013 000011 00000100 0014 110100 00000111 0015 110101 000011000 0016 101010 0000010111 0017 101011 0000011000 0018 0100111 0000001000 0019 0001100 00001100111 0020 0001000 00001101000 0021 0010111 00001101100 0022 0000011 00000110111 0023 0000100 00000101000 0024 0101000 00000010111 0025 0101011 00000011000 0026 0010011 000011001010 0027 0100100 000011001011 0028 0011000 000011001100 0029 00000010 000011001101 0030 00000011 000001101000 0031 00011010 000001101001 0032 00011011 000001101010 0033 00010010 000001101011 0034 00010011 000011010010 0035 00010100 000011010011 0036 00010101 000011010100 0037 00010110 000011010101 0038 00010111 000011010110 0039 00101000 000011010111 0040 00101001 000001101100 0041 00101010 000001101101 0042 00101011 000011011010 0043 00101100 000011011011 0044 00101101 000001010100 0045 00000100 000001010101 0046 00000101 000001010110 0047 00001010 000001010111 0048 00001011 000001100100 0049 01010010 000001100101 0050 01010011 000001010010 0051 01010100 000001010011 0052 01010101 000000100100 0053 00100100 000000110111 0054 00100101 000000111000 0055 01011000 000000100111 0056 01011001 000000101000 0057 01011010 000001011000 0058 01011011 000001011001 0059 01001010 000000101011 0060 01001011 000000101100 0061 00110010 000001011010 0062 00110011 000001100110 0063 001101000 00001100111 0064 11011 0000001111 0128 10010 000011001000 0192 010111 000011001001 0256 0110111 000001011011 0320 00110110 000000110011 0384 00110111 000000110100 0448 01100100 000000110101 0512 01100101 000000110110 0576 01101000 000001101101 0640 01100111 000000100100 0704 011001100 000000100101 0768 011001101 000000100110 0832 011010010 000000100111 0896 011010011 000000111000 0960 011010100 000000111001 1024 011010101 000000111010 1088 011010110 000000111011 1152 011010111 000000111010 1216 011011000 000000111011 1280 011011001 000000101000 1344 011011010 000000101001 1408 011011011 000000101010 1472 010011000 000000101011 1536 010011001 000000101100 1600 010011010 000000101101 1664 011000 000000110010 1728 010011011 000000110011 EOL 000000000001 000000000001 ========================================================================== Appendix B Return Codes The following paragraphs describe the correct time to read the RET_CODE field of the JT Fax API window. When the PC is finished receiving data from the JT Fax board, then the JT Fax issues an EOT in the Command field. The JT Fax board sends a BOARD_ACK in the Command field when the transmission is complete. At this time the PC should read the RET_CODE field of the JT Fax API window. If the command field changes to an error, the RET_CODE is valid. Some of the errors are fatal and some are operational. Fatal errors halt execution with an error flag while operational errors are less severe and will allow the Fax operation to continue. Operational errors are read at the end of a receive or transmit. Once an error occurs, Buffer area [0] can be checked for additional return code information. If available, the byte will be non-zero. Also, the status field can be checked to determine the state of the JT Fax. The following paragraphs describe the JT Fax Return Codes. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 00 MNEMONIC: SUCCESSFUL_TRANSMIT DESCRIPTION: A successful transmit occurred with no errors. This is a JT Fax compatibility code. RECOMMENDED ACTION: Fax was good. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 01 MNEMONIC: NO_DIALTONE DESCRIPTION: A dial command was issued with either a 'W' dial modifier or a wait for dialtone in byte 0 of the dial string. Fatal error. RECOMMENDED ACTION: Check cable connections and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 02 MNEMONIC: NO_CARRIER DESCRIPTION: A complete connection was not established. A NO_CARRIER error appears after the dial and before the Phase A completion. JT Fax compatibility. Fatal error. RECOMMENDED ACTION: Check phone number and retry call. Try enabling enhanced mode to determine the exact cause of error. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 03 MNEMONIC: BUSY DESCRIPTION: The called phone number was busy or a circuit was busy. Fatal error. RECOMMENDED ACTION: Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 04 MNEMONIC: PC_COMM_ERROR DESCRIPTION: Invalid response or command while in command state. Fatal error. RECOMMENDED ACTION: Check Host for problems. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 07 MNEMONIC: CLIP DESCRIPTION: An ASCII file was converted to T.4 data and a line was longer than 216 bytes (including spaces and tabs). This error only occurs during a FILETYPE - ASCII conversion during transmit. The error does not cause an abort to the transmit. Operational error. RECOMMENDED ACTION: Continue with fax or terminate call with a SOFT_RESET. Modify file before retransmitting. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 10 MNEMONIC: DIALING_ERROR DESCRIPTION: A dial command was issued and one of the characters in the dial string was invalid. Fatal error. RECOMMENDED ACTION: Check dial string and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 12 MNEMONIC: FONT_TOO_LARGE DESCRIPTION: The soft font file was too large for the soft font area. This error could also apply to the OEM code load. Fatal error. RECOMMENDED ACTION: Shorten soft font and retry. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 19 MNEMONIC: TRANSMIT_PAGE_ERROR DESCRIPTION: Transmit page was not received correctly. Operational error. RECOMMENDED ACTION: Retry call. Check remote fax machine and/or telephone line.. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 20 MNEMONIC: PHASE_A_ERROR DESCRIPTION: The transmitted Fax was not received correctly. Operational error RECOMMENDED ACTION: Retry call. Call Hayes Customer Service. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 21 MNEMONIC: NO_CNG_ERROR DESCRIPTION: No 1100 Hz CNG tone was detected from the Caller. If CNG detect is enabled this informs the user that a CNG was not detected. If CNG detect is not enabled then this error will not occur. Operational error. RECOMMENDED ACTION: Hang up the Fax call and use a voice connection. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 30 MNEMONIC: PHASE_C_ERROR DESCRIPTION: This a general error for Phase C. Operational error. RECOMMENDED ACTION: Retry Call. Call Hayes Customer Support. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 32 MNEMONIC: MAX_FRAME_ERR DESCRIPTION: The FAX handshake frame was too large for the JT Fax buffers. This is usually caused by a noisy line. Fatal error. RECOMMENDED ACTION: Check line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 35 MNEMONIC: LONG_LINE_ERROR DESCRIPTION: An error occurred in the reception of data. A line was received and decoded as being to long. This only occurs if the line is noisy. RECOMMENDED ACTION: Check phone line and redial. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 36 MNEMONIC: PERCENTAGE_ERROR DESCRIPTION: Percentage of data errors on receive versus the amount of correctly received data. Operational error. RECOMMENDED ACTION: Check line for connection or noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 40 MNEMONIC: PHASE_D_ERROR DESCRIPTION: A response from the remote machine was not received after transmit during the required time. Operational error. RECOMMENDED ACTION: Check line for connection or noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 60 MNEMONIC: DTMF_ERROR DESCRIPTION: A valid DTMF signal was not received. Operational error. RECOMMENDED ACTION: Check connection. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 61 MNEMONIC: NO_DTMF_TIMEOUT_ERROR DESCRIPTION: A manual DTMF command was issued. The activity timer expired with no DTMF. Operational error. RECOMMENDED ACTION: Check connection and line noise. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 62 MNEMONIC: VOICE_ERROR DESCRIPTION: An error occurred during the operation of a voice command. Fatal error. RECOMMENDED ACTION: Retry voice operation. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 122 MNEMONIC: HDLC_MIN_SIZE_ERROR DESCRIPTION: The HDLC frame of the T.30 handshake was shorter than expected. Invalid frame was received. Fatal error. RECOMMENDED ACTION: Check remote Fax. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 123 MNEMONIC: HDLC_CRC_ERROR DESCRIPTION: The HDLC frame of the T.30 handshake did not have a good CRC. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 124 MNEMONIC: NEGOTIATING_TRAIN_DCN_ERROR DESCRIPTION: A DCN was received while the Fax was negotiating speed. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote Fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 125 MNEMONIC: HDLC_FRAME_TIMOUT_ERROR DESCRIPTION: A time-out occurred while waiting for the HDLC T.30 handshake. Fatal error. RECOMMENDED ACTION: Check line for noise and check remote Fax. Retry call. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RETURN_CODE: 126 MNEMONIC: NO_DCS_REC